Java基础语法
01、注释
- 为什么要写注释
- 注释为对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。
- 书写注释是一个非常好的习惯
- 平时写代码一定要注意规范 (具体可以参照阿里巴巴Java开发手册)
- 注释有三种:单行注释,多行注释,文档注释
![]()
02、标识符和关键字
- 关键字
![]()
- 关键字不能作为类名,变量名以及方法名
- Java所有的组成部分都需要名字,类名,变量名以及方法名都被称为标识符
- 标识符注意点:
- 所有的标识符都应该以字母a-z,美元$,或者下划线开始
- 首字符之后可以是字母a-z,美元$,或者下划线_,或任何数字字符组合
- 不能使用相同的变量名和不能使用关键词作为变量名
- 标识符是大小敏感的
- 可以使用中文命名,但一般不建议使用,也不建议使用拼音,这样很low
03、数据类型讲解
-
数据类型
- 强类型语言:是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。
- 弱类型语言:弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过显性强制转换。
-
Java的数据类型
-
分两个大类
-
基本类型
-
八大基本数据类型
// 整数int num1 = 10;byte num2 = 20;short num3 = 30;long num4 = 30L;// 小数、浮点数float num5 = 50.1f;double num6 = 3.13432;// 字符char name = "字";// 布尔值boolean flag = false;
-
-
引用类型
- 类
- 接口
- 数组
-
04、数据类型扩展及面试题讲解
-
整数拓展
// 进制,二进制0b,十进制,八进制0,十六进制0xint i = 10;int i2 = 010;int i3 = 0x10
-
浮点数拓展
// float 长度有限 舍入误差,大约,接近但不等于// double 最好完全使用浮点数进行比较// BigDecimal 数学工具类float f = 0.1f;double d = 1.0/10;System.out.println(f==d); //falsefloat f1 = 12312312123f;float f2 = f1 + 1;System.out.println(d1==d2); //true
-
字符拓展
char c1 = 'A';char c2 = "中";System.out.println(c1); // ASystem.out.println((int)c1); // 强制转换 65System.out.println(c2); // 中System.out.println((int)c2); // 强制转换 20013// 所有的字符本质还是数字// 编码 uincode 2字节,长度 0 - 65536char c3 = '\u0061'System.out.println(c3); // 1//转义字符 \t 制表符 \n 换行String sa = new String("hello");String sb = new String("hello");System.out.println(sa==sb); // falseString sc = "hello";String sd = "hello";System.out.println(sc==sd); // true
-
布尔值拓展
bolean flag = true;if(flag == true){} //新手if(flag){} //老手
05、类型转换
-
Java是强类型语文,有些运算需要用到类型转换
-
强制转换 ,高—>低
-
自动转换,低—>高
-
注意点:
-
不能对布尔值进行转换
-
不能把对象类型转换为不相当的类型
-
在高容量转低容量时,强制转换
-
转换时,可能存在内存溢出,或者精度丢失
int i = 128;byte b = (byte)i; // 强制转换// 内存溢出System.out.println(i); // 128System.out.println(b); // -128// 精度丢失System.out.println((int)23.7); // -23System.out.println((int)-30.78f); // -30char c = 'a';int d = c+1;System.out.println(d); // 98System.out.println((char)d)); // b// 操作比较大的数的时候,注意溢出问题// JDK7新特性,数字之间只可以用下划线分割int money = 10_0000_0000;int years = 20;int total = money * years;//-1474836480,计算的时候溢出long total2 = money * years;//-1474836480,默认是int,转换之前就已经存在问题了long total3 = money * ((long)years); //先转类型,再运算
-
06、变量、常量、作用域
-
变量
-
什么是变量:就是可以变化的量,跟解数学方程写X一样
-
Java变量是程序中的最基本存储单元
// 定义一个基本类型的变量int a = 1;// 定义一个引用类型的变量String name = "jack";
public class Variable{static int allClicks = 0;// 类变量String str = "Hello world";// 实例变量,从属于对象,如果不初始化,有默认值 nullpublic void method(){int i = 0;// 局部变量,必须声明和初始化值}}
-
-
常量
-
常量,初始化后不能再改变值。像奶茶店的大杯,中杯,小杯,定义了就不能改了
-
常量名一般用大写字符
// 修饰符,不分先后顺序static final double PI = 3.14;
-
07、基本运算符
-
算术运算符:+,-,*,/ ,%,++,—
-
赋值运算符:=
-
关系运算符:>,<,>=,<=,!=
-
逻辑运算符:&&,||,!
-
位运算符: &,|,^,~ ,>>, << (与二进制相关)
-
条件运算符:? :
-
扩展赋值运算符:+=,-=,*=,/=
// 赋值运算符int a = 10;int b = 20;//算术运算符System.out.println(a+b); // 30System.out.println(a-b); // -10System.out.println(a*b); // 200System.out.println(a/b); // 0 由于是int类型,会取整// 关系运算符System.out.println(a>b); // falseSystem.out.println(a<b); // trueSystem.out.println(a>=b); // falseSystem.out.println(a<=b); // trueSystem.out.println(a==b); // falseSystem.out.println(a!=b); // true
08、自增自减运算符、初识Math类
-
自增自减,一元运算符
int a = 10;int b = a++;// 执行这段代码后,先给B赋值,再自增 b = a; a = a+1;int c = ++a;// 执行这段代码后,再自增,先给c赋值 a = a+1;c = a;System.out.println(a);System.out.println(b);System.out.println(c);// 幂运算 2^3 2*2*2 = 8System.out.println(Math.pow(2, 3));
09、逻辑运算符、位运算符
//逻辑运算符 与(and) 或 (or) 非 (取反)boolean a = true;boolean b = false;// a && b : false 两个变量都为真,结果为 trueSystem.out.println("a && b : "+(a&&b));// a || b : true 两个变量其一为真,结果为trueSystem.out.println("a || b : "+(a||b));// !(a && b) : true 如果是真的,变为假,如果是假,变为真System.out.println("!(a && b) : "+!(a&&b));//位运算符/*A = 0001 1100B = 0000 1101--------------A&B = 0000 1100A|B = 0011 1101A^B = 0011 0001~B = 1111 0010*/>> *2<< /2
10、三元运算符及小结
-
扩展赋值运算符
int a = 10;int b = 20;a+=b; // a = a + b;a-=b; // a = a - b;// 字符连接符 + StringSystem.out.println(""+a+b); // 1020System.out.println(a+b+""); // 30
-
三元运算符
// x ? y :z// 如果 x == true,则结果为y,否则结果为zSystem.out.println(true?"是正确的":"错误的"); // 是正确的
11、包机制
- 想当于文件夹,为了更好组织文件
- 包语法格式为
package pkg1[.pkg2[.pak3...]];- 引用包使用:import
- 导包语法格式为
import pkg1[.pkg2[.pak3...]];
12、JavaDoc生成文档
- javadoc 命令是用来生成自己API文档的
javadoc -encoding UTF-8 -charset UTF-8 文件名- 参数信息




浙公网安备 33010602011771号