-
Java跨平台特性
跨平台:一次编译 到处运行
笔记本手抄:1.跨平台图示
2.jdk jre jvm 图示
- 概念:给对应元素起的名称就被称为标识符,包括类名、方法名、字段名、变量名等等。
- 组成:英文、数字、下划线,$
- 规范
-
标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符
-
不能以数字开头。如:123name 就是不合法
-
标识符严格区分大小写。如: tmooc 和 tMooc 是两个不同的标识符
-
标识符的命名最好能反映出其作用,做到见名知意。
-
标识符不能是Java的关键字
-
驼峰命名规则
1.大驼峰命名规则:单词首字母大写,后面单词的首字母也大写 用于:类、接口 比如:HelloWorld 2.小驼峰命名规则:单词首字母小写,后面单词的首字母也大写 用于:方法、变量、参数 比如:getUserName
-
- 概念:在Java中,有一些单词被赋予了特定的意义,一共有50个关键字
- 规则:
- 关键字全小写,
- 其中有两个保留字:const和goto。
- 关键字不能被用作标识符!
- 需要注意的是,除了上述的50个关键字以外,true,false,null也不可以被用作标识符~
-
-
注释的真正作用是: 它可以向任何阅读代码的人描述或者解释程序的实现思路,如何使用以及其它任何相关信息, 提高代码的可读性,方便后期的维护与复用。
-
种类:
1.//我是一个单行注释,注释单行内容 2. 3.
-
概念:数据的值是不固定的,总在变,我们可以把这些数据理解为变量。
-
格式:两种 通过三个元素来描述变量:变量类型 变量名以及变量值。
- 格式一:声明变量时并且赋值:int age = 18;
格式二:先声明变量:String tel ; 然后给变量赋值:tel = 119;
- 格式一:声明变量时并且赋值:int age = 18;
-
注意:
-
变量名必须是一个有效的标识符
-
变量名不可以使用java关键字
-
变量名不能重复
-
- 基本类型介绍(八种):
-2. 引用类型:除了八种基本类型都是引用类型。暂时就学了String
-
整数类型的字面值类型是int类型
int x = 99999; //byte y = 300;错误的 300是int类型,byte存不下 //int z = 99999999999999; 错误的,超出范围 long h = 9999999999999L;
-
浮点数类型的字面值类型是double类型
double d = 3.14; //float f = 3.14;错误的 float f = 3.14F; double d2 =3d;//表示这个3是浮点类型,方便阅读d/D都可以
-
byte,short,char三种比int小的整数可以用范围内的值直接赋值
byte b1 = 127; //byte b2 = 128; 错了 超出范围 short s1 = 30000; char c1 = 97; char c2 = 60000; //char c3 = 69000;错了,超出了char的范围0~65535
-
字面值后缀L D F
long x =99999999999L;//字面值是int类型,需转成long类型的数据,加字面值后缀L即可 float b = 3.0F;//3.0字面值是double类型,加后缀F会变成float类型 double d = 3D;//3字面值是int类型,加后缀D,会变成double类型
-
进制前缀
//10进制,底数为10:10^2 10^1 10^0 =100+0+0=100 System.out.println(100);//默认10进制,打印100 //2进制,底数为2:2^2 2^1 2^0 =4+0+0=4 System.out.println(0b100);//2进制,打印4 //8进制,底数为8:8^2 8^1 8^0 =64+0+0=64 System.out.println(0100);//8进制,打印64 //16进制,底数为16:16^2 16^1 16^0 =256+0+0=256 System.out.println(0x100);//16进制,打印256
-
计算结果的数据类型,与最大数据类型一致
System.out.println(3/2);//1,int/int,得到的结果类型还是int System.out.println(3/2d);//1.5,int/double。得到的结果是double
-
byte,short,char三种比int小的整数,运算时会先自动转换成int
byte a = 1; byte b = 2; byte c = (byte)(a+b); //a+b会自动提升成int类型,右面得运算结果就是int大类型 //给左面的byte小类型赋值,不可以,需要强转。
-
整数运算溢出
//溢出的现象: System.out.println(300000000L * 60 * 60 * 24 * 365);
-
浮点数运算不精确
System.out.println(1-0.8);//浮点数计算不精确 结果为1.999999999996
-
浮点数的特殊值
Infinity 无穷大 3.14/0 NaN not a number 0/0.0 或 0.0/0
- 箭头开始的地方是小类型,箭头指向的地方是大类型
我们此处所指的"大"和"小",指的是对应类型的取值范围,不是字节数哦
-
小到大(隐式转换)
byte m = 120; int n = m;//小转大,右面的m是小类型,给左面的n大类型赋值,可以直接使用 float f = 3.2f; double d = f; -->可以执行
-
大到小(显式转换)
int x = 999; byte y =(byte)x;//大转小,右面x给左面的y小类型赋值,不可以,需要强制类型转换
-
注意:
- 转换过程中可能导致溢出或损失精度
例如:int i =128; byte b = (byte)i; //打印的结果是-128
因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。 - 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
例如:float f = 32.7f; int a2 =(int) f; //打印的结果是32 - 不能对boolean类型进行类型转换。
- 转换过程中可能导致溢出或损失精度
-
口诀:
小到大,直接转 大到小,强制转 浮变整,小数没`
低 ------------------------------------> 高
byte,short,char→ int→ long→float→double
1.案例一 package cn.tedu.basic; public class CommentDemo { //我是一个单行注释,注释单行内容 public static void main(String[] args) { System.out.println("我就是想测试下注释会不会执行~~"); } } 2.案例二 package cn.tedu.basic; public class TestInfo { //1.添加程序入口函数 main alt+/ 补全代码 public static void main(String[] args) { //2.定义变量 //定义一个age变量,用来保存年龄16 int age = 16; //定义一个salary变量,用来保存工资10000.99 double salary = 10000.99; String name = "泡泡";//定义一个name变量,用来保存姓名 泡泡 //3.打印变量名 System.out.println(name);//泡泡 System.out.println(age);//16 System.out.println(salary);//10000.99 System.out.println(name+"今年三岁了,月薪99,感慨洗碗工真的不挣钱啊"); System.out.println(name+"今年"+age+"岁了,月薪99,感慨洗碗工真的不挣钱啊"); System.out.println(name+"今年"+age+"岁了,月薪"+salary+",感慨洗碗工真的不挣钱啊"); } } 3.案例三 package cn.tedu.basic; public class TestTypeScope { //1.创建程序入口函数main public static void main(String[] args) { //2.定义对应类型的变量,格式:类型 名字 = 值 byte byteMin = Byte.MIN_VALUE; byte byteMax = Byte.MAX_VALUE; System.out.println("byte类型的最小值是:"+byteMin);//-128 System.out.println("byte类型的最大值是:"+byteMax);//127 short shortMin = Short.MIN_VALUE; short shortMax = Short.MAX_VALUE; System.out.println("short类型最小值是:"+shortMin);//-32768 System.out.println("short类型最大值是:"+shortMax);//32767 int intMin = Integer.MIN_VALUE; int intMax = Integer.MAX_VALUE; System.out.println("int类型最小值是:"+intMin);//-2147483648 System.out.println("int类型最大值是:"+intMax);//2147483647 //long -Long long longMin = Long.MIN_VALUE; long longMax = Long.MAX_VALUE; System.out.println("long类型最小值是:"+longMin);//long类型最小值是:-9223372036854775808 System.out.println("long类型最大值是:"+longMax);//long类型最大值是:9223372036854775807 //float -Float float floatMin = Float.MIN_VALUE; float floatMax = Float.MAX_VALUE; System.out.println("float类型最小值是:"+floatMin);//1.4E-45 1.4乘以10的-45次方 System.out.println("float类型最大值是:"+floatMax);//3.4028235E38 //double -Double double doubleMin = Double.MIN_VALUE; double doubleMax= Double.MAX_VALUE; System.out.println("double类型最小值是:"+doubleMin);//double类型最小值是:4.9E-324 System.out.println("double类型最大值是:"+doubleMax);//double类型最大值是:1.7976931348623157E308 boolean b1 = true; boolean b2 = false; System.out.println(b1); System.out.println(b2); char c1 = 'a';//字符型可以保存一个字母 char c2 = '中';//字符型可以保存一个汉字 char c3 = '6';//字符型可以保存一个数字 System.out.println(c1); System.out.println(c2); System.out.println(c3); char c4 = 97; System.out.println(c4);//a char c5 = 55555; System.out.println(c5);//? } } 4.案例四 package cn.tedu.basic2; import java.util.Scanner;//引入外部资源 public class TestCircleArea { //1.创建入口函数main方法 alt+/补全代码 public static void main(String[] args) { //2.定义一个变量r,保存半径值为5.5 //double r = 5.5; //5.1不能将半径值写成固定值,而是要接收用户输入的半径 System.out.println("请您输入要计算的半径值:"); //5.2定义一个变量用来保存一会要接收的半径值 double r; //5.3从控制台接收用户输入的数据 r = new Scanner(System.in).nextDouble();//Scanner(System.in)系统扫描输入 nextDouble()控制输入的类型 //3.定义一个变量result用来保存计算得出的结果 double result = 3.14*r*r; //4.打印:当半径为5.5时,圆的面积为xxxx System.out.println("当半径为"+r+"时,圆的面积为:"+result); } } 5.案例五 package cn.tedu.basic2; import java.util.Scanner; public class TestVauleExchange { //1.创建入口函数main public static void main(String[] args) { //2.提示并接受用户在控制台输入的两个整数 System.out.println("请您输入要交换的第一个整数:"); int a = new Scanner(System.in).nextInt(); System.out.println("请您输入要交换的第二个整数:"); int b = new Scanner(System.in).nextInt(); //3.完成值交换 //3.1定义一个第三方变量t来协助交换 int t; //3.2将变量a的值交给变量t来保存 t = a; //3.3将变量b的值交给变量a来保存 a = b; //3.4将变量t的值交给变量b来保存 b = t; System.out.println("交换后,第一个整数的值为"+a); System.out.println("交换后,第二个整数的值为"+b); } } 6.案例六 package cn.tedu.basic2; public class TypeDemo { //创建入口函数main方法 public static void main(String[] args) { int x = 99999; //byte y = 300;错误的 300是int类型,byte存不下 //int z = 99999999999999; 错误的,超出范围 long h = 9999999999999L; double d = 3.14; //float f = 3.14;错误的 float f = 3.14F; double d2 =3d;//表示这个3是浮点类型,方便阅读d/D都可以 byte b1 = 127; //byte b2 = 128; 错了 超出范围 short s1 = 30000; char c1 = 97; char c2 = 60000; //char c3 = 69000;错了,超出了char的范围0~65535 //需求:已知光速3亿m/s,打印光跑一年的长度 System.out.println(300000000L*60*60*24*365);// System.out.println(1-0.8);//浮点数计算不精确 //类型转换 int i = 100; byte j = (byte)i; System.out.println(j); double k =5.79; int q = (int)k; System.out.println(q);//5 直接舍弃小数部分 } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)