java基础知识梳理

这篇具有很好参考价值的文章主要介绍了java基础知识梳理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

虽然已经在实际工作中与java打交道5年之多,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法和知识点做个总结与回顾,一方面为了加深印象,方便后面查阅,一方面为了学好java打下基础。拉勾IT课小编为大家分解

Java简介

java语言于1995年正式推出,最开始被命名为Oak语言,由James Gosling(詹姆斯·高斯林)在Sun Microsystems公司和同事共同研发,Microsystems如今已经被oracle收购。java语言具有以下特点:

·简单性

·面向对象

·可移植性

·安全性

·健壮性

·多线程

Java文件运行过程如下:

1.编写源代码,文件格式:.java

2.编译.java文件 生成.class文件(二进制字节码文件)

3.运行.class文件在JVM上(java虚拟机,支持多平台)

如果大家在学习过程中遇到什么问题,或者缺乏相关的Java学习资料,可查看右侧公告栏获取,有问题随问随答,还有我这段时间整理的一些Java学习手册,面试题,开发工具,PDF文档书籍教程,需要的话都可以免费分享给大家。言归正传:

Java语言基础语法注释

注释用于解释程序,增强可读性,java中注释有以下几种:

1.单行注释,语法如下:

//单行注释

2.多行注释,语法如下:

/*

多行注释

多行注释

*/

3.javadoc注释,是一种专业注释,可以被javadoc.exe工具解析提取生成帮助文档

/**

* javadoc注释

*/

标识符

标识符用于标识类名,方法名,变量名,接口名等,命名需要满足以下规则:

·只能由"数字,字母(A-Z或者a-z),美元符($)、或者下划线(_)"组成

·所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始

·严格区分大小写,不能用关键字做标识符

java编程规范建议遵守驼峰命名法,类名和接口名首字母大写,变量和方法名首字母小写。Java采用unicode的编码方式,所以标识符也支持中文。

类的定义

java定义一个类用class关键字,有以下几点需要注意:

·一个java源文件定义公开的类只能有一个,类名称必须和java源文件名称一致

·一个java源文件可以编写多个class

·每一个class都可以编写main方法

Java数据类型基本数据类型

数据类型的作用是指导JVM在运行程序的时候给该数据分配多大的内存空间,Java提供了以下八种基础数据类型:

整型表示方式

整型有三种表示方式,默认是十进制:

类型转换

类型转换有如下规则:

1.八种基本数据类型除了布尔类型之外,剩下的7种类型都可以互相转换

2.小容量向大容量转换,可以自动进行,容量从小到大排序为:byte

3.大容量数据转换成小容量,需要进行强制类型转换,强转会损失精度

4.byte, short ,char混合运算,各自转换成int;多种数据类型混合运算,转换成容量最大的类型再运算。

对于强制类型转换,将long强转成int的语法如下:

long k = 6475201314L;

int num = (int) k;

注意:大容量转换成小容量编译无法通过,比如下面代码无法编译:

byte b = 19;

b = b + 13; //相当于直接把整型赋值给byte型,报错

b += 13; //可以编译,等同于b = (byte)(b + 13)

复合数据类型字符串(String)

在Java中使用String类来创建和操作字符串,初始化一个String的语法如下:

//常用,用双引号直接创建

String testStr = "Wasting time is robbing oneself";

//不常用,使用char数组创建

char[] helloArray = {'h', 'e', 'l', 'l', 'o'};

String helloString = new String(helloArray);

由于字符串使用非常频繁,String类也提供了很多方法,下面介绍一些用的比较多的。

·对字符串进行修改的常用方法有(包括格式化,大小写转换):

·对字符串进行查找和替换的方法有:

·获取子字符串的常用方法有:

·对字符串进行比较的方法有:

·其他常见的方法比如统计长度,拼接,转换等:

数组

数组可以用于存放固定大小的同类型元素,声明一个数组的语法如下:

变量类型[]数组名;

创建数组的语法:

数组名= new变量类型[数组大小];

变量类型[]数组名= {value0, value1, ..., valuek};

数组的变量类型可以是前面介绍八种基本数据类型以及复合数据类型,“数组名[索引]”可以访问数组元素,下面是一个操作一维数组例子:

int[] primeNumbers = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29};

for (int num : primeNumbers) {

System.out.println("num: " + num);

}文章来源地址https://www.toymoban.com/news/detail-443882.html

操作二维数组的例子如下:

int[][] a = new int[2][3];

a[0][0] = 19;

String[][] s = new String[2][];

s[0] = new String[2]; //第一个数组长度为2

s[1] = new String[3]; //第二个数组长度为3

s[0][0] = "Hello";

s[0][1] = "World";

java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的,比较常见的方法有:

使用Arrays的sort方法进行排序的例子如下:

int[] primeNumbers = {7, 11, 5, 2, 3};

Arrays.sort(primeNumbers);

for (int num : primeNumbers) {

System.out.println("num: " + num);

}

集合

Java语言提供了一个完善的集合框架,主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射经常用到的集合有:

ArrayList提供的常用方法有:

下面是操作一个java.util.ArrayList的例子:

ArrayList list = new ArrayList();

list.add(2);

list.add(3);

list.add(5);

for (int i = 0; i

System.out.println(list.get(i));

}

list.remove(1);

list.set(1, 19);

类型转换方法

运算符

Java的运算符种类比较多,本文介绍几种常见的运算符:

算术运算符

java的算术运算符如下表(int a = 10; int b= 9;):

基本的赋值运算符"="可以与前5种算术运算符组合成+=,-=,*=,/=,%=等扩展的赋值运算符int a = 10; a += 5; 等价于a = (int)(a + 5);其他的运算符类似,扩展运算符默认有类型转换,但是不改变运算结果类型

对于"+"运算符,只要两边的操作数有一个是字符串就会进行字符串连接运算生成一个新的字符串。

关系运算符

java中主要有以下六种关系运算符:

关系运算符返回的结果是布尔型

逻辑运算符

主要有以下三种逻辑运算符(boolean a = true; boolean b = false):

位运算符

位运算符对两个操作数的每一位进行运算,有以下几种常见的类型:

三目运算符

三目元素符的语法规则:

布尔表达式?表达式1 :表达式2;

布尔表达式为真执行表达式1,为假执行表达式2,利用三目运算符求最大值的一个例子如下:

int a = 10;

int b = 9;

int max = (a > b) ? a : b;

System.out.println("max number is: " + max);

控制语句

每种编程语言都少不了控制语句来控制代码流程,java语言也提供了丰富的控制语句。

选择结构if语句

if语句常见的语法:

//第一种写法,else分支可以省略

if (布尔表达式) {

表达式为真要执行的语句;

} else {

其他条件要执行的语句

}

//第二种写法,最后的else分支可以省略

if (布尔表达式) {

表达式为真要执行的语句;

} else if (布尔表达式1) {

表达式1为真要执行的语句

} else if (布尔表达式2) {

表达式2为真要执行的语句

} else {

除上述条件之外要执行的语句

}

switch语句

switch语句的语法如下:

switch (expression) {

case value1 :

//匹配value1成功之后执行的语句

break; //可选

case value2 :

//匹配value2成功之后执行的语句

break; //可选

...

default : //可选

//前面case分支都没匹配时执行的语句

}

其中expression支持byte、short、int、char以及字符串(String),byte、short、char会转换为int类型。程序只有遇到break语句才会跳出switch语句,缺少break的分支会继续往下面分支执行。

循环结构

程序当中总会有些需要重复执行的代码片段,因此各个编程语言都支持循环语法。

for语句

for语句的语法如下:

for (初始化表达式;布尔表达式;更新表达式) {

//要重复执行的代码片段

}

执行过程:

1.初始化表达式最先执行而且只执行一次;

2.判断布尔表达式,如果是真执行循环体,如果是假则退出循环

3.循环体执行之后更新表达式,再执行步骤2,反复循环直到退出循环利用for循环计算数字1到10的和的代码如下:

int sum = 0;

for (int i = 0; i

sum += i;

}

System.out.println("the sum is: " + sum);

while语句

while语句的语法如下:

while (布尔表达式) {

//循环内容

}

执行过程:先判断布尔表达式的值,为真就执行循环体,为假则循环结束,循环体可能一次也不执行。使用while循环计算数字1到10的和是:

int sum = 0;

int i = 0;

while (i

sum += i;

i++;

}

System.out.println("The sum is: " + sum);

do…while循环

do…while循环的语法如下:

do {

//循环内容

} while (布尔表达式);

do…while循环先执行循环内容再判断表达式,循环体至少会执行一次。

控制循环语句break语句

break使用在switch语句中终止switch执行,使用在循环语句中终止循环,跳出当前循环体。语法如下:

break;

continue语句

continue表示直接进入下一次循环继续执行,语法如下:

continue;

Java变量类型

在Java中,所有的变量在使用前必须声明。声明变量的基本格式如下:

type identifier = value;

value的数据类型必须和声明的变量类型一致,变量的值可变化,必须先声明再赋值才能访问。

局部变量:

java中的局部变量声明在方法内部,有以下特点:

·变量只在作用域内有效,超出作用域变量将会被销毁;

·变量是在栈上分配,没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

局部变量存储在栈内存中。

实例变量(成员变量):

成员变量在方法体之外声明,有以下特点:

·当一个对象被实例化之后,每个实例变量的值就跟着确定

·实例变量在对象创建的时候创建,在对象被销毁的时候销毁

·实例变量具有默认值,数值型变量的默认值是,布尔型变量的默认值是false,引用类型变量的默认值是null。

成员变量在JVM的堆内存中存储,垃圾回收器主要针对堆内存处理。

静态变量:

静态变量用static关键字声明,需要记住以下特点:

·无论一个类创建了多少个对象,类只拥有静态变量的一份拷贝

·静态变量在第一次被访问时创建,在程序结束时销毁。

·静态变量具有默认值,取值和实例变量类似

不同类型变量在JVM中的存储情况如下表:

java基础知识梳理

方法/函数方法语法

方法实质就是一段可以重复使用,完成某项特定功能的片段,和C语言中的函数类似。方法的语法如下:

[修饰符]返回值类型 方法名(参数类型 参数名1,参数类型 参数名2 ...) {

...

方法体;

...

return返回值; //可选,与返回值类型一致

}

比如常见的main方法如下:

public static void main(String []args) {

System.out.println("Hello World!");

}

方法有如下几个部分组成:

1.修饰符:修饰符,这是可选的,定义了该方法的访问类型。比如public, static, private, protected等

2.返回值类型 :方法可能会返回值,支持前面介绍的八种基本数据类型以及String,如果不需要返回值,返回值类型就写成void。

3.方法名:是方法的实际名称,建议首字母小写。方法名和参数表共同构成方法签名。

4.参数类型:即形参列表,形参的个数可以是:0~N个。当方法被调用时,传递值给对应参数,这个值被称为实参。

5.方法体:方法体包含具体的语句,定义该方法的功能。下面是实现判断一个正整数是否是质数的函数的例子(假设num大于2):

private static boolean isPrimeNumber(int num) {

boolean isPrime = true;

for (int i = 2; i

if (num % i == 0) {

isPrime = false;

break;

}

}

return isPrime;

}

方法内存

方法代码片段属于.class字节码文件的一部分,在调用方法的时候才会在中分配内存,称为压栈;方法执行结束释放方法的内存空间称为弹栈。方法执行完之后,方法内局部变量的空间也释放,因此局部变量只在方法内有效。JVM的栈中主要存储的是局部变量。

方法重载

方法重载(overload)主要是是指方法名相同,参数列表不同,和返回值类型无关,和修饰符无关。要构成方法重载需要满足以下条件:

1.方法是在同一个类当中

2.这些方法的方法名相同

3.参数列表不同,可以是数量不同,顺序不同,类型不同

面向对象

面向对象是Java核心的特点,主要有以下特性:

·封装:封装就是隐藏实现细节,仅对外提供访问接口。优点是使代码模块化,具有安全性。

·继承:继承就是将已存在的类(父类)的定义作为基础建立新类,新类(子类)的定义可以增加新的数据或新的功能,也可以用父类的功能

·多态:多态就是引用变量指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定。使得程序灵活地运行在多个状态。

对象和类的定义:

·对象(object):对象是类的一个实例,是实际存在的个体,有状态和行为。

·类(class):类是一个模板,它描述一类对象的行为和状态,是抽象思考的结果。

对象和类的关系:一个类进行实例化就形成了对象,对象抽象形成类。

类的语法如下:

[修饰符列表] class类名{

属性; //对象的状态信息,通常采用变量方式定义,称为成员变量

方法; //对象的动作信息

}

类实例化需要用new运算符,语法如下:

new类名();

java中的类属于引用数据类型,new新建的java对象存储在JVM的堆内存中,new等号左侧类的变量名存储的是指向堆内存的地址。每个new出来的类的内存互相独立。Java面向对象中相关的重要知识点有:

·构造方法:构造方法名称与类名相同,无返回参数。构造方法在类初始化的时候调用,支持重载。类存在默认的无参构造方法。

·this关键字:this指向当前对象的引用,"this.属性名称"或者"this.方法名称"用于访问本类的变量或者方法,在构造方法中使用"this();"语句访问本类的构造方法。

·static关键字:static修饰属性表示静态变量,修饰类的方法表明无需类的对象就可以调用此方法。

·super关键字:super为对父类的引用,可以使用super来调用父类的属性,方法,和构造方法。

·final关键字:final修饰变量表示变量的值初始化后不能发生变化;final修饰方法表示不能被子类重写;final修饰的类无法被继承。

·抽象类:抽象类使用abstract关键字声明,非抽象类继承抽象类必须实现所有抽象方法,抽象类不能被实例化。抽象类不能声明为final。

·instanceof关键字:instanceof是用于检查对象是否为指定的类型,通常在进行类型转换时要使用,以避免发生类型转换异常。

·接口(Interface):接口是一个抽象类型,是抽象方法的集合。接口不是类,接口没有构造方法,不能被实例化,只能被类实现。接口只能包含static和final变量。

Java中声明一个接口的语法如下:

interface接口名称[extends其他的接口名] {

全局常量;

抽象方法;

}

常用函数

接着介绍Java中使用非常频繁的几个函数:

输出函数

控制台的输出由print()和println()完成。这些方法都由类PrintStream定义,System.out是该类对象的一个引用。print()打印指定的字符不换行,println()打印完成换一行。下面是使用的例子:

System.out.print("Remember: ");

System.out.println("Haste makes waste");

输入函数

Java中使用java.util.Scanner类获取用户的输入,使用前需要先创建Scanner对象。常用next()与nextLine()方法获取输入的字符串,对应地用hasNext()与hasNextLine()判断是否还有输入的数据。下面是使用next函数获取用户输入字符串的例子:

//创建scanner对象

Scanner scan = new Scanner(System.in);

//判断是否还有输入

if (scan.hasNext()) {

String inputStr = scan.next();

System.out.println("you input:" + inputStr);

}

//关闭scanner

scan.close();

还可以使用nextInt接收一个整数,Scanner常用的方法如下表:

java基础知识梳理

总结

Java这门语言涵盖的知识点比较丰富,一篇文章是不可能将所有知识点都完全覆盖到的。本文的主要目的是梳理下基础常见的知识点,帮助大家一起复习下,学习一门语言打好基础是至关重要的。掌握了这些基础知识点,自己动手写一些小程序问题也不大。文章最后再附上一个完整代码的小例子,实现的功能是将用户输入的字符串逆序输出:

class Test{

public static void main(String args[]) {

Scanner scan = new Scanner(System.in);

String inputStr = scan.nextLine();

// String转换为char数组

char[] nums = inputStr.toCharArray();

for (int i = nums.length; i>0; i--) {

System.out.print(nums[i-1]);

}

System.out.println("");

}

}

到了这里,关于java基础知识梳理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 找工作所需数据库基础知识与实际操作(以MySQL为例)

    第一章、数据库原理概述 1.1.2 数据库、数据字典、数据库管理系统、数据库系统 1. 数据库(DB)--- (1)概念:按一定结构组织并长期存储在计算机内的、在逻辑上保持一致的、可共享的大量相关数据的集合---存储数据仓库 (2)属性:较小的冗余度、较高的数据独立性、易

    2024年02月05日
    浏览(57)
  • Java入门基础知识

    JDK是Java工具开发包,包含了JVM(程序运行环境),核心类库(直接应用即可),开发工具(Javac,java,jdb,jhat…) JRE是Java运行环境,包含了JVM,核心类库,运行工具 JDK包含了JRE,JRE包含了jvm 全部小写(有特定含义的英文字符) class 表示一个类 整数类型 小数类型 字符串类型 :只用\\\"双引

    2024年02月09日
    浏览(68)
  • java基础知识二

    1.1、基本概念 类是具有相同属性和行为的一组对象的 集合 ,包含数据和操作,数据被称为 成员变量 ,操作被称为方法 对象是类的实例,即 对象 = 数据 + 行为 或者 对象 = 状态 + 操作 类抽象的、概念上的定义,对象是一个具体的、实际存在的个体,即一个实例 1.2、类的特

    2024年02月07日
    浏览(54)
  • java基础知识

    java的数据结构有哪些? 线性结构:数组、链表、哈希表;队列、栈 非线性结构有:堆、树(二叉树、B树、B+树、红黑树) 图 常用的集合类有List集合,Set集合,Map集合,其中List集合与Set集合继承了Collection接口, List 有序可重复的集合接口,继承自Collection接口,表示元素按照插入顺

    2024年02月06日
    浏览(51)
  • Java中常量基础知识

    什么是字面常量? 拿第一行输出语句来说,这行代码输出了 “hello” 这个字符串,无论何时何地运行程序,输出的这个字符串都不会变,这就是字面常量。 定义:常量即程序运行期间,固定不变的量称为常量。 package ht; public class ht1 {    public static void main(String[] args) {    

    2024年02月06日
    浏览(45)
  • Java GC基础知识

    在对象中添加一个 引用计数器 ,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可 能再被使用的 引用计数法的缺陷: 如果使用 引用计数法 , objA 和 objB 除互相引用外没有任何其他引用,但是无法被回收。

    2023年04月13日
    浏览(66)
  • Java ---基础知识& 期末复习

    1.Java是低级语言还是 高级语言    答:高级语言。 2.Java是面向对象的程序设计语言吗 答:是。 3. Java是编译型的计算机语言还是解释型的计算机语言。 答: 一种说法:Java是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就无法执行。 另一种说法:Java是解释型

    2024年01月16日
    浏览(58)
  • java基础知识——25.异常

    这篇文章,我们来讲一下java的异常体系 目录 1.异常概述 2 java的异常继承体系 2.1 编译时异常 2.2 运行时异常 2.3 底层原理 2.4 异常的作用 3.异常的处理方式 3.1 JVM默认的处理方式 3.2 自己处理(捕获异常) 3.2.1自己处理的4个问题 3.2.2 异常中的常见方法 3.3 抛出处理 3.3.1 throws

    2024年02月01日
    浏览(50)
  • Java基础知识篇——Java基本介绍

    Java 是 Sun Microsystems 于 1995 年首次发布的一种 编程语言 和计算平台。编程语言还是比较好理解的,什么是 计算平台 呢? 计算平台是电脑中运行应用程序(软件的环境),包括硬件环境和软件环境。一般系统平台包括一台电脑的硬件体系结构,操作系统、运行时库。 Java 是快

    2024年03月11日
    浏览(47)
  • Java基础入门知识

    以下是学习java必备的知识 目录 前言 一、Java入门 二、基本数据类型与数组 标识符与 2. 基本数据类型 3. 类型转换运算 4. 运算符 5. 数组 6.控制结构(与c使用一致) 总结 Java语言是面向对象编程语言,编写的软件与平台无关。具有语法简单、面向对象、稳定、与平台无

    2024年02月16日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包