关键字 :被Java语言赋予特定含义的单词
特点 :组成关键字的字母全部小写
注意事项 :goto和const作为保留字存在,目前并不使用 ,类似IDEA这样的集成工具,针对关键字有特殊的颜色标记,非常直观。加上下列50个共有52个关键字:
2、常见命名规则 2.1、标识符 标识符:给类,接口,方法,变量等起名字时使用的字符序列
组成:1、英文大小写字母
2、数字
3、$和_
注意事项:
1、不能以数字开头
2、不能有除$和_以外的特殊字符出现
3、不能是java关键字
单级文件夹(所有字母全部小写)
举例:bigdata
多级文件夹(所有字母全部小写,文件夹之间用 . 分开)
举例:com.bigdata.rz
2.2.2、类或者接口一个单词组成(首字母大写其余字母小写)
举例:Hello
多个单词组成(所有单词的首字母大写,其余字母小写)
举例:HelloWorld
2.2.3、方法和变量一个单词组成(所有字母小写)
举例:eat
多个单词组成(第一个单词全部小写,从第二个单词开始,首字母大写,其余字母小写)
举例:playGame
2.2.4、常量一个单词组成(所有字母全部大写)
举例:NAME
多个单词组成(所有字母全部大写,单词与单词之间用下划线连接)
举例:FIRST_NAME
3、注释注释 :用于解释说明程序的文字 Java中注释分类格式
单行注释格式: // 注释文字
多行注释格式:
文档注释格式:
注释是一个程序员必须要具有的良好编程习惯。 初学者编写程序可以养成习惯:先写注释再写代码。 将自己的思想通过注释先整理出来,在用代码去体现。 因为代码仅仅是思想的一种体现形式而已。
// 声明一个类,类名为HelloWoeld class HelloWorld { // 定义main函数,使程序能被jvm调用 public static void main(String[] args){ // 调用输出函数,输出:HelloWorld! System.out.println("HelloWorld!"); } }4、常量
常量:在程序执行的过程中其值不可以发生改变 。Java中常量分为字面值常量和自定义常量
4.1、常量的分类(1)字面值常量
字符串常量 用双引号括起来的内容 "abc"
整数常量 所有整数 12,23
小数常量 所有小数 12.34,56.78
字符常量 用单引号括起来的内容 ‘a’,’A’,’0’
布尔常量 较为特有,只有true和false
空常量 null(数组部分讲解)
(2)自定义常量(面向对象部分讲解)
4.2、进制 4.2.1、不同进制的数据组成二进制:由0,1组成,以0b开头
八进制:由0,1,...,7组成,以0开头
十进制:由0,...,9组成,整数默认是十进制的
十六进制:有0,1,...,9,a,b,c,d,e,f组成,以0x开头
4.2.2、进制转换其他进制转十进制:系数*基数^权的和
十进制转其他进制:除基取余,直到商为0,余数反转
二进制与十进制的快速转换:8421码
任意进制之间的转换:1、以十进制为桥梁
2、拆分组合法
a: 八进制3位为一组
b: 十六进制4位为一组
在计算机内,有符号数有3种表示法:原码、反码和补码。所有数据的运算都是采用补码进行的。
原码:就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
5、数据类型 5.1、基本数据类型(从小到大) 整数类型:
byte 1个字节 -2^7~2^7-1
short 2个字节 -2^15~2^15-1
int 4个字节 -2^31~2^15-1
long 8个字节 -2^63~2^63-1
浮点类型:
float 4个字节 -3.403*10^38 ~ 3.403*10^38
double 8个字节 -1.798*10^308 ~ 1.798*10^308
字符型:
char 2个字节
布尔型:
boolean 1个字节
5.2、引用数据类型(面向对象部分讲解) 5.3、数据类型转换
自动类型转换:
byte,short,char在参与运算的时候会自动提升到int类型
由大的数据类型接收小的数据类型,会自动转换,不会报错。
强制类型转换
由小的数据类型接收大的数据类型,会报错,接收不了,这时候需要强制类型转换
格式:目标数据类型 目标变量名 = (目标数据类型)要转换的数值/变量
public class DataTypeDemo{ public static void main(String[] args) { // byte b = 130; byte b = (byte)130; System.out.println(b); // -126 b = (byte)131; System.out.println(b); byte b1 = (byte)300; System.out.println(b1); // 44 } }6、运算符 6.1、算数运算符 6.1.1、+,-,*,/,%
public class DataTypeDemo{ public static void main(String[] args) { 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 //System.out.println("5+5="+5+5); // 5+5=55 我想先计算后面的5+5怎么办? //小括号可以改变运算的顺序优先级 System.out.println("5+5="+(5+5)); } }
public class OptArithmeticDemo{ public static void main(String[] args) { //+ 加法运算 System.out.println(1+1); //2 //-减法运算 System.out.println(5-2); //3 / public class OptArithmeticDemo{ public static void main(String[] args) { int a = 10; int b = 10; int c = 10; a = b++; // a=10 ,b=11 ,c=10 c = --a; // a=9 ,b=11 ,c=9 b = ++a; // a=10 ,b=10 ,c=9 a = c--; // a=9 ,b=10 ,c=8 System.out.println(a); // 9 System.out.println(b); // 10 System.out.println(c); // 8 } }
public class OptArithmeticDemo{ public static void main(String[] args) { int a = 4; int b = (a++)+(++a)+(a*10); // 4 6 60 // a=5 a=6 a=6 System.out.println(a);//6 System.out.println(b);//70 } }6.2、赋值运算符
short s=1, s = s+1;
short s=1, s += 1;
上面两个代码有没有问题,如果有,那里有问题?
第一个有问题,因为变量参与运算,首先会提升数据类型,然后做运算。所以 s = s+1;s会提升到int类型然后再做加法运算,最终的结果是int类型,所以拿short类型接收会报错,所以要想成功赋值,就得强制类型转换。
第二个代码没有问题,是因为内部自动包含了强制类型转换,s+=1 ===> s = (s的数据类型)(s+1)
public class OptFuZhiDemo{ public static void main(String[] args) { // int a = 10; // int b = a; // System.out.println(a); // System.out.println(b); // += // int a += 10; int a = 10; a += 20; //这里实际上可以看作为a的值加上了一个20再赋值给a //但是不能完全等于 a = a + 20 //因为a += 20等价于a = (int)(a + 20) System.out.println(a); //-= a-=10; System.out.println(a); //20 / }6.6、位运算符
public class OptWeiDemo{ public static void main(String[] args) { byte a = 3; byte b = 4; System.out.println(a&b); System.out.println(a|b); System.out.println(a^b); System.out.println(~a); //-4 } }
public class OptWeiDemo2 { public static void main(String[] args) { System.out.println(3<<2); //12 = 3*4 = 3*2^2 System.out.println(24>>2); //6 = 24/(2*2) System.out.println(-24>>2);// -6 System.out.println(-24>>>2);//1073741818 System.out.println(3<<3); // 3*2^3 } }
面试题: 请用最有效率的方式写出计算2乘以8的结果
a<
a>>b == a/2^b
--2022.1.4
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)