【JavaSE】基础语法知识汇总

简介: 【JavaSE】基础语法知识汇总

思维导图:


1.偶遇Java:

  1. 一个Java文件中可以有若干个类,但是只能有一个public修饰的类,并且这个类的类名必须和文件相同
  2. JDK:Java Developmen Kit。Java开发包,包含了JRE、编译器javac和自带的调试工具。
  3. JRE:Java Runtime Environment。Java运行时的环境,包含JVM和Java基础类库。
  4. JVM:Java虚拟机,运行Java代码。
  5. 运行Java程序:编写Java源程序使用javac.exe编译器生成字节码文件,使用javac xxx.java来操作编译器。字节码文件格式为xxx.class,使用java运行字节码文件的方法是java xxx.java。字节码文件时二进制的数据,一个类有一个不是一个文件,方便随用随取。
  6. 标识符:用户给类名、方法名和变量名所取的名字。
  • 标识符可以包含字母、数字和下划线等符号,但是不能以数字开头
  • 类名:大驼峰,方法名和变量名:小驼峰。
  • 标识符不可以是关键字。(main不是关键字)

2.数据类型:

  1. 数据类型分为基本数据类型和引用数据类型。
  2. 基本数据类型共有4类8种
数据类型 关键字 包装类型 字节个数  大小
字节型 byte Byte 1个字节 -2^7~2^7-1
短整型 short Short 2个字节 -2^15~2^15-1
整型 int Integer 4个字节 -2^31~2^31-1
长整型 long Long 8个字节 -2^63~2^63-1
单精度浮点型 float Float 4个字节
双精度浮点型 double Double 8个字节
字符型 char Character 2个字节 0~2^16-1
布尔类型 boolean Boolean 无规定 true和false


3.不论是16位还是32位系统,int都占4个字节

4.Java中没有unsigned(无符号数字),字符串属于引用类型。

5.所赋值不能超过自己使用的类型大小,还有一种情况:

byte a = 127;

byte b = (byte)(a+1);这里b的值为-128

6.类型转换分为俩类,自动类型转换(隐式)和强制类型转换(显示)。自动类型转换的特点是范围小的类型转换成范围大的类型,在编译期间会自动完成。例如:int a = 10;long b = 100L;b = a;编译器会自动将a提升为long类型,然后赋值。强制类型转换的特点是范围大的转换成范围小的,需要自己进行处理才能完成。例如:int c = 10;short d = (short) c;需要将int类型的c强制转换成short类型才可以。

7.类型提升,不同类型的数据相互运算时,数据类型小的会被转换成数据类型大的。例如int和short之间,short会被提升成int。有一种情况,俩个类型的大小都小于4个字节时,例如byte和byte之间,系统会自动将short都提升为int,然后进行计算。

8.字符串和整型数字之间的转换。在Java中字符串不是以\0结尾。若int转String,可以将整数后加上 +" " 或着是String.valueOf(整数)。若String转int,则使用Integer.parseInt(字符串)。有一个比较坑的地方,例如:int a = 10;int b = 20;

System.out.println("a:"+a+b);输出结果是:a:1020

System.out.println(a+b+"sanlian");输出结果是:30sanlian



3.运算符:

  1. 算术运算符分为基本四则运算符( + - * / % )和增量运算符(+= -= *= /= %=)还有自增自减运算符(++ --)。使用基本四则运算符做除法或是取模时,右操作数不能为0,取模时可以对double类型取模(但是没有意义 ! ),左右操作数为负数时也可以取模。使用增量运算符时,注意一点,例如:short a = 10;a += 1;会发生类型提升如short a = (short) (a+1);
  2. 关系运算符(< > == != <= >=),其运算结果是true和false。
  3. 逻辑运算符(&& || !),其运算结果是true和false。语法规则是:布尔表达式&&布尔表达式。这里有一个短路求值的概念

System.out.println(33>44 && 10%0 == 10);第一个表达式为false,不去第二个表达式

System.out.println(33<44 || 10%0 == 10);第一个表达式为true,不去第二个表达式

1.位运算符(& | ~ ^),位运算符操作的是二进制位。按位与&的特点是若俩个二进制位都是1则是1否则为0。按位或|的特点是若俩个二进制位有一个是1则是1,都是0才是0。按位异或^的特点是找不同,不同的二进制位得1。按位取反~是将1变成0,0变成1。

2.移位运算符(<< >> >>>)。左移<<:左侧不要,右侧补0,右移>>:右侧不要,左侧补(正数补0,负数补1),无符号右移>>>:右侧不要,左侧补0。计算机的移位操作比算术操作效率更高。

3.条件运算符(A>B?A:B),也是Java中唯一的三目运算符。

4.逻辑控制语句:

  1. 选择语句if和switch,使用时注意括号的位置。

【面试题】不能做switch的参数有哪些?

long、float、double、boolean

2.循环语句while和for,使用时注意括号的位置。

3.输入和输出,使用Scanner来获取数据。scanner...这些容易混淆。例如:next ();读取有效元素,遇

空格停止。nextLine ();返回enter键前的所有字符。hasNext ();用来判断是否有下一个输入项。hasNextLine ()用来判断输入数据是否有下一行。

5.方法:

  1. 方法的概念,方法就类似于C语言中的函数。定义格式为:修饰符 返回值类型 方法名();常用的修饰符是public static固定搭配。方法名采用小驼峰格式,方法必须写在类当中。
  2. 实参和形参的关系。在Java中对于基础类型来说,实参的值永远都是拷贝到形参中,形参和实参本质上是俩个实体,对形参的修改不会影响实参。可以通过传引用类型来解决这个问题。
  3. 方法重载(overload),如果多个方法的名字一样但是参数列表不同,则称这几种方法被重载了。参数列表的不同有这几种:参数的个数不同,参数的类型不同等。方法是否构成重载和返回值的类型是否相同无关。
  4. 方法签名
  5. 递归,一个方法在执行过程中调用自身的方法就叫递归。递归有俩个必要的条件,在方法的内部自己调用自己,一定要有一个趋于终止的条件

6.数组:

  1. 数组是相同类型元素的集合,在内存中是一块连续的空间。数组的创建有3种方法,其中array2和array3是通过关键字new来创建一个对象,这和array的创建形式不同。在array3中没有指定数组的具体内容,则都默认为0。如果数组是布尔类型,创建时没有初始化则默认都为false。若存储元素是引用类型,则默认为null
创建方式(3种) 0下标 1下标 2下标 3下标 4下标 5下标

int[ ] array ={1,2,3,4,5,6};

1 2 3 4 5 6

int[ ] array2

=new int[ ]{1,2,3,4,5,6};

1 2 3 4 5 6

int[ ] array3 =new int [6];

0 0 0 0 0 0

2.数组的使用,遍历数组是非常重要的操作。

遍历数组(已知数组array) 注意:
for(int i = 0 ; i < array.length ; i++) 循环打印
for(int x : array) 比第一种简单点
System.out.println(Arrays.toString(array)) ; 将数组以字符串形式输出

3.初始JVM的内存分布

虚拟机栈 方法执行时都会创建一个栈帧,存放局部变量
new创建的对象在堆上保存,堆随着程序运行而创建,程序退出而销毁,是JVM管理的最大内存区域
程序计数器
本地方法栈
方法区

4.基本类型和引用类型的区别。基本数据类型创建的变量,称之为基本变量,该变量存放的是一个值。引用数据类型创建的变量,称之为对象的引用,其存储的是对象所在空间的地址。

5.数组使用。数组拷贝是使用Arrays中copyOf方法完成的,在进行数组拷贝时会创建一个新的数组,这时原数组和拷贝得到的数组不是同一个数组。也可以使用copyOfRange方法来拷贝数组的某个范围。查找有序数组中指定元素的下标,Arrays中binarySearch方法可以实现。将一个数组排成有序可以使用Arrays中的sort方法。

6.二维数组,可以省略列不能省略行。


如果对您有帮助的话,

不要忘记点赞+关注哦,蟹蟹

如果对您有帮助的话,

不要忘记点赞+关注哦,蟹蟹

如果对您有帮助的话,

不要忘记点赞+关注哦,蟹蟹

相关文章
|
4月前
|
Java C++ 索引
【Java】JavaSE基础知识
【Java】JavaSE基础知识
111 0
|
8天前
|
安全 Java 程序员
一文让你深入了解JavaSE的知识点(下)
一文让你深入了解JavaSE的知识点(下)
|
8天前
|
Java 编译器 数据安全/隐私保护
一文让你深入了解JavaSE的知识点(上)
一文让你深入了解JavaSE的知识点
|
13天前
|
存储 Java
Java入门&基础语法
Java入门&基础语法
|
2月前
|
存储 人工智能 算法
JavaSE 进阶-javase进阶(一)
JavaSE 进阶-javase进阶
47 0
|
2月前
|
安全 算法 Java
JavaSE 进阶-javase进阶(三)
JavaSE 进阶-javase进阶
42 0
|
安全 Java API
JavaSE 进阶-javase进阶(二)
JavaSE 进阶-javase进阶
37 0
|
7月前
|
存储 Java 编译器
JavaSE基本语法~1
JavaSE基本语法~
|
7月前
|
Java 编译器 C语言
JavaSE基本语法~2
JavaSE基本语法~2
|
9月前
|
前端开发 IDE Java
《JavaSE-第一章》之初识世界上“最好的”语言java
《JavaSE-第一章》之初识世界上“最好的”语言java

热门文章

最新文章