Java基础语法
目录
1:关键字(掌握)
2:标识符(掌握)
3:注释(掌握)
4:常量(掌握)
5:进制转换(了解)
6:变量(掌握)
7:数据类型(掌握)
8:数据类型转换(掌握)
9:运算符(掌握)
1:关键字(掌握)
-
被Java语言赋予特定含义的单词
-
特点:
全部小写
-
注意事项:
A:goto和const作为保留字存在。
B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记

2:标识符(掌握)
-
就是给类,接口,方法,变量等起名字的字符序列
-
组成规则:
A:英文大小写字母 B:数字 C: $ 和 _ -
注意事项:
A:不能以数字开头 B:不能是java中的关键字 C:区分大小写 -
常见的命名规则(见名知意)
A:包 全部小写 单级包:小写 举例:liuyi,com 多级包:小写,并用.隔开 举例:cn.itcast,com.baidu B:类或者接口 一个单词:首字母大写 举例:Student,Demo 多个单词:每个单词首字母大写 举例:HelloWorld,StudentName C:方法或者变量 一个单词:首字母小写 举例:name,main 多个单词:从第二个单词开始,每个单词首字母大写 举例:studentAge,showAllNames() D:常量 全部大写 一个单词:大写 举例:PI 多个单词:大写,并用_隔开 举例:STUDENT_MAX_AGE
3:注释(掌握)
-
就是对程序进行解释说明的文字
书写注释是一个非常好的习惯,平时写代码要注意规范
-
分类:
A:单行注释 // B:多行注释 /**/ C:文档注释(主要说明文档信息) /** */ -
注释的作用:
A:解释说明程序,提高了代码的阅读性。 B:可以帮助我们调试程序。 后面我们会讲解一个更高端的一个调试工具

4:常量(掌握)
-
在程序执行的过程中,其值不发生改变的量
-
分类:有两种,字面值常量和自定义常量(后面讲 )
-
字面值常量
A:字符串常量 "hello" B:整数常量 12,23 C:小数常量 12.345 D:字符常量 'a','A','0' E:布尔常量 true,false F:空常量 null(后面讲) -
在Java中针对整数常量提供了四种表现形式
A:二进制 由0,1组成。以0b开头。 B:八进制 由0,1,...7组成。以0开头。 C:十进制 由0,1,...9组成。整数默认是十进制。 D:十六进制 由0,1,...9,a,b,c,d,e,f(大小写均可)组成。以0x开头。 例:println输出100 0b100 0100 0x100 值不一样会自动转换为相应进制数
5:进制转换(了解)
-
其他进制到十进制
系数:就是每一个位上的数值
基数:x进制的基数就是x
权:对每一个位上的数据,从右,并且从0开始编号,对应的编号就是该数据的权。
结果:系数*基数^权次幂之和。
-
十进制到其他进制
除基取余,直到商为0,余数反转。
-
进制转换的快速转换法
A:十进制和二进制间的转换
8421码。
B:二进制到八进制,十六进制的转换
6:变量(掌握)
-
在程序的执行过程中,其值在某个范围内可以发生改变的量
-
变量的定义格式:
A:数据类型 变量名 = 初始化值;
B:数据类型 变量名;
变量名 = 初始化值;
注意事项: 1.每个变量都有类型,类型可以是基本类型,也可以是引用类型 2.变量名必须是合法的标识符 3.变量声明是一条完整的语句,因此每个声明都必须以分号结束
7:数据类型(掌握)
-
Java是一种强类型语言,针对每种数据都提供了对应的数据类型。
要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。
-
分类:
A:基本数据类型:4类8种
B:引用数据类型:类,接口,数组。
-
基本数据类型
A:整数 占用字节数 byte 1字节 short 2字节 int 4字节 long 8字节 B:浮点数 float 4字节 double 8字节 C:字符 char 2字节 D:布尔 boolean 1位 注意: 整数默认是int类型,浮点数默认是double。 长整数要加L或者l。 单精度的浮点数要加F或者f。![]()
8:数据类型转换(掌握)
-
boolean类型不参与转换
-
默认转换
A:从小到大 (小数比整数大) B:byte,short,char -- int -- long -- float -- double C:byte,short,char之间不相互转换,直接转成int类型参与运算。 注意: 1.不能能对布尔值进行转换 2.不能把对象类型转换为不相干的类型 3.在把高容量转换到低容量的适合,强制转换 4.转换的时候可能存在内存溢出,或者精度问题运算中,不同类型的数据先转化为同一类型,然后进行运算
-
强制转换
A:从大到小 B:可能会有精度的损失,一般不建议这样使用。 C:格式: 目标数据类型 变量名 = (目标数据类型) (被转换的数据); -
自动转换 小——>大,不会发生错误,直接写,例如
int i = 128; double b = i; //自动转换不会发生报错 -
思考题和面试题:
//操作比较大的数字的时候,注意溢出问题 //jdk7新特性,数字之间可以用下划线分割,不影响数字本来意思 int money = 10_0000_0000; System.out.println(money); //输出结果:1000000000 int years = 20; int total = money*years; // -1474836480,计算的时候溢出 long total2 = money*years; //默认是int,转换之前已经存在问题,结果还是溢出 long tatal3 = money*((long)years); //先把一个数转换为long,得到正确结果A:下面两种方式有区别吗? float f1 = 12.345f; float f2 = (float)12.345; 没有区别,第一个表示就是float类型(建议) 第二个表示经过在运算的自动上升之后的类型强制转换保留后几位 B:下面的程序有问题吗,如果有,在哪里呢? byte b1 = 3; byte b2 = 4; byte b3 = b1 + b2; //在相加时类型提升,有问题 byte b4 = 3 + 4; //常量,先把结果计算出来,然后看是否在byte范围内 C:下面的操作结果是什么呢? byte b = (byte)130; //byte范围是:-128到127 报错需要强转 分析过程: 我们要想知道结果是什么,就应该知道是如何进行计算的。 而我们又知道计算机中数据的运算都是补码进行的。 而要得到补码,首先要计算出数据的二进制。 A:获取130这个数据的二进制。 00000000 00000000 00000000 10000010 这是130的原码,也是反码,还是补码。 B:做截取操作,截成byte类型的了。 10000010 这个结果是补码。 C:已知补码求原码。 符号位 数值位 补码: 1 0000010 反码: 1 0000001 原码: 1 1111110 D:字符参与运算 是查找ASCII里面的值 'a' 97 'A' 65 '0' 48 System.out.println('a'); System.out.println('a' + 1); E:字符串参与运算 这里其实是字符串的连接(与字符串相加其实会变成字符串连接) System.out.println("hello"+'a'+1); //helloa1 System.out.println('a'+1+"hello"); //98hello System.out.println("5+5="+5+5); //5+5=55 System.out.println(5+5+"=5+5"); //10=5+5
9:运算符(掌握)
-
算术运算符
-
+,-,*,/,%,++,--
-
+的用法:
1.加法
2.正号
3.字符串连接符
//字符串连接符 + ,String int a = 10; int b = 20; System.out.println(""+a+b); //字符串在前面,先拼接,结果为 1020 System.out.println(a+b+""); //字符串在后面,先运算再拼接,结果为 30 -
/和%的区别
数据做除法操作的时候,/取得是商,%取得是余数
//特别注意,当结果涉及到小数的时候需要注意类型 int a = 10; int b = 20; //ctrl + D:复制当前行到下一行 System.out.println(a/b); //结果为0 原因是 0.5取整 System.out.println(a/(double)b); //应该将任意一个转换为小数 -
++和--的用法
他们的作用是自增或者自减
使用:
- 单独使用
放在操作数据的前面和后面效果一样。
a++或者++a效果一样。 - 参与操作使用
放在操作数的前面:先自增或者自减,再参与操作
int a = 10;
int b = ++a;
放在操作数的后面:先参与操作,再自增或者自减
int a = 10;
int b = a++;
- 单独使用
-
-
赋值运算符
-
=,+=,-=,*=,/=,%= 等
-
=叫做赋值运算符,也是最基本的赋值运算符
int x = 10; //把10赋值给int类型的变量x。 -
扩展的赋值运算符的特点:隐含了自动强制转换。
//面试题: short s = 1; s = s + 1; short s = 1; s += 1;
-
-
比较运算符
- ==, !=, >, >=, <, <=
- 无论运算符两端简单还是复杂最终结果是boolean类型。
- 千万不要把 == 写成了 =
-
逻辑运算符
-
&, |, ^, !, &&, ||
-
逻辑运算符用于连接boolean类型的式子
-
结论
&:有false则false |:有true则true ^:相同则false,不同则true。 情侣关系。 !:非true则false,非false则true &&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。 ||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。 //短路运算 int c = 5; boolean d = (C<4)&&(c++<4); System.out.println(c); //这里结果为5,可见上面&&后面的c++未执行
-
-
位运算符(了解)
-
示例
A = 0011 1100; B = 0000 1101; A&B = 0000 1100; //都取1时,结果为1 A|B = 0011 1101; //其中有1时,结果为1 A^B = 0011 0001; //相同为0,不同为1 ~B = 1111 0010; //取反 -
^的特殊用法
一个数据针对另一个数据位异或两次,该数不变
-
除了 &、|、^,位运算符还有左移 << 和右移 >>
这个效率更高,在计算机底层常用
<< 相当于 *2
">>" 相当于 /2
-
面试题
a:请实现两个变量的交换 **采用第三方变量 **用位异或运算符 左边a,b,a 右边a^b b:请用最有效率的方式计算出2乘以8的结果 2<<3
-
-
三元运算符
-
格式:
比较表达式?表达式1:表达式2; -
执行流程
首先计算比较表达式的值,看是true还是false。 如果是true,表达式1就是结果。 如果是false,表达式2就是结果。 -
案例
a:比较两个数据是否相等 b:获取两个数据中的最大值 c:获取三个数据中的最大值
-
本文来自博客园,作者:{野绅士},转载请注明原文链接:https://www.cnblogs.com/pythonzxs/p/14979759.html


浙公网安备 33010602011771号