第一章:数据类型+运算符
1.1注释(很有必要 )
- 注释的作用:
- 注释第一方便阅读,第二为了增加程序的阅读性
- Java 文件在编译的时候 注释的代码会被抛弃 不会进行编译在字节码文件中是没有注释的内容
- 注释的方式 :
单行注释
以// 开头多行注释
以/* 开头 以*/结尾在中间的内容 为注释 内容 可以作为行内注释但是不可以嵌套文档注释
以/开头 以*/ 结尾 包含一些说明性的文字
和javadoc标签
(后期写项目时 可以生成api)//main主函数 public static void main(String[]args){ }
public class HelloWorld { public static void main(String[] args) { System.out.println("hello world"); } }
1.2 标识符
- 什么是标识符:
- 标识符是用来给变量 类 方法以及包进行命名的。
- 标识符的使用规范:
- 标识符必须以字母 下划线 美符号$ 开头
- 标识符的其他部分可以是字母 下划线_ 美符 和数字的任意组合
- java的标识符对大小写敏感,且长度无限制
- 标识符不可以是java的关键字
- 表示类的标识符 :每个单词的首字母大写 Man Welcome
- 表示方法和变量的标识符; 第一个单词小写 从第二个单词开始首字母大写 eat() eatFood()
【注意】java使用的Unicode字符集 而不是ASCII字符集 所以包含汉字 但是不建议使用汉字来定义标识符。
1.3 关键字和保留字
- 关键字就是保留字不需要记【以后会天天的见到 不需要单独记忆】
strictfp, 即 strict float point (精确浮点) strictfp 关键字可应用于类、接口或方法。使用 strictfp 关键字声明一个方法时,该方法中所有的float和double表达式都严格遵守FP-strict的限制,符合IEEE-754规范
1.4 变量的本质
- 变量的本质就是一个
可以操作的存储空间
,空间位置是确定的, 但是里面的内容是不确定的,我们可以通过变量名来访问 对应的存储空间,从而操纵整个存储空间存储的值 - 变量作为程序的最基本的存储单, 其要素包括变量名,变量类型和作用域 。变量在使用前需要声明,只有在声明变量之后,才能为其分配相应长度的存储空间,才能使用变量
- 注意:
- 每个变量都有类型,类型可以是基本类型也可以是引用类型声明变量需要以分号结束 可以将变量的声明与初始化放在同一行中例如:
Int age = 18;
- 变量需要声明和初始化(赋值)才能使用
- 每个变量都有类型,类型可以是基本类型也可以是引用类型声明变量需要以分号结束 可以将变量的声明与初始化放在同一行中例如:
1.5 变量的分类(三种)
- 分类:
静态变量
(类变量 static variable)
使用static 定义从属于类,生命周期伴随类而始终,从类的加载到卸载。局部变量
(local variable)
方法或是语句内部定义的变量。生命周期是从声明的位置开始到方法或是语句块执行完毕为止。成员变量
(也叫实例变量 member variable)
方法外部类内部定义的变量 从属于对象,生命周期伴随对象而始终。 对象的成员变量 会自行的初始化 int初始化为 0 double初始化为 0.0 char初始化为 \u0000 boolean 初始化为false
- 常量 constant
- Java中利用关键字final 来定义一个常量,常量一但被定义之后就不能更改其值。
Int age = 18; final String name = “上山打老虎”
- 常量命名规则是大写字母和下划线:MAX_VALUE
- Java中利用关键字final 来定义一个常量,常量一但被定义之后就不能更改其值。
1.6 基本数据类型
- Java中定义了3类8种基本数据类型:
- 数值型 byte1 short2 int4 long8 float4 double8 字节
- 字符型 (文本型)char 2字节
- 布尔型 boolean 1 字节(boolean类型所占用的字节数有争议)
- 三种引用数据类型 :
类 接口 数组
- 不同的数据类型占用的字节和范围:
- Java中四种整型常量的表示方法:四种常用的进制
- 十进制 0~9 如 99
- 八进制 要求以0开头 015
- 十六进制要求以0x 或是0X开头 0X15
- 二进制 要求以0B 或是0b开头 0b0
- Java浮点数常量的表示形式
- 十进制数形式 3.14 5.12
- 科学计数法形式 314e2 314e-2
Float 单精度类型 7位有效数字
Double 双精度类型 - 注意:
- 最后注意:浮点数不精确 不可以用浮点数进行比较!
- 如果需要比较可以用java.math 下的BigInteger 或是BigDecimal来进行比较 这两个类可以实现任意长度的数值的运算
- 布尔类型变量
- Boolean ture or false
public class TestOperating { public static void main(String[] args) { byte a = 1; int b = 22; long d = 1L; int c = a+b; long e = c+d; System.out.println(c); System.out.println(e); float f = 3.14F; double g = 3.14; double h = 3.14; //float i = f+g; 报错 double i = f+g; double l = g+h; System.out.println(i);// 这句代码 体现了 浮点数的不准确性6.4175 System.out.println(l); //自增 自减 int m = 3; int n = ++m; //先给m赋值3 在自加1 最后在赋值给n -- 是一样的 System.out.println(n);//4 System.out.println(m);//4 int o = 3; int p = o++;//先给p赋值3 然后o自加一 所以p的值是3 o的值是4 System.out.println(o);//4 System.out.println(p);//3 char b1 = 'a'; char b2 = 'c'; System.out.println(a>c); //false System.out.println((int)b1); //97可以强制转型 也可以用0+b1 它会自动的转型 System.out.println((int)b2);//99 System.out.println(0+b1);//97 } } public class TestDataType { public static void main(String[]args) { int a = 18; int b = 014;//以0 开头是8进制 int c = 0x15;//以0x 开头是16 进制 int d = 0b0;//以0b开头是2 进制 System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d); byte age = 30; short salary = 30000; int population = ; long money = 000L; System.out.println(age); System.out.println(salary); System.out.println(population); System.out.println(money); float e = 3.14F;// 浮点数是不精确的 不能用于精确的比较 一定要记住!!! double f = 3.14; double g = 314e-2;//科学计数法 System.out.println(e); System.out.println(f); System.out.println(g); char h = 'a'; char i = '上';//可以表示转译字符 使用16 进制 使用单引号 双引号是字符串 System.out.println(h); System.out.println(i); //测试布尔类型 boolean man = false; if(!man) { //less is more System.out.println("不是男性"); }else { System.out.println("是男性"); } } }
- Boolean ture or false
1.7 运算符
- 分类:
- 算数运算符 :
- 二运算符 + - * / %
- 一运算符 ++ --
- 赋值运算符 =
- 扩展运算符 += -= *= /=
- 关系运算符 < > >= <= == !=
- 逻辑运算符 && || ! ^
- 位运算符 & | ^ ~ >> << >>> >>(表示的是有符号右移:正数右移高位补零 负数右移高位补一) >>>(>>> 表示的无符号右移 也叫逻辑右移:不论是正数还是负数在右移的时候都将高位补零 )
- 条件运算符 ?:
- 字符串连接符 +
- 算数运算符 :
- 详解:
- 算数运算符规则 :
- 整数运算:有long 就是long 没有long 就是int
- 浮点运算:有double 就是double 只有两个都是float才是float
- 取模运算 取余 余数的符号与被除数相同
- ++ 表示的是自增1 – 表示的是自减1
- 赋值运算符 和 扩展运算符
- 赋值运算符 =
- Int a = 3; //表示的是将等号右边的3 赋值给左边的变量a
- 扩展运算符 += -= *= /= %=
- a += b–> a = a + b 其余的同理
- 赋值运算符 =
- 关系运算符 关系运算的结果是true or false
- ==等于 != 不等于 >大于 <小于 >=大于等于<=小于等于
- 注意:= 是赋值的意思 == 是等于 char 可以进行大小的比较
- 逻辑运算符 用来操作Boolean 值 与 或 非
- 逻辑与 & 两个操作数都是true 才是true
- 逻辑或 | 两个操作数有一个是true 就是true
- 短路与 && 只要是有一个是False 就直接返回false
- 短路或 || 只要是有一个是true 就直接返回true
- 逻辑非 ! 取反 !False 就是true
- 逻辑异或 ^ 相同为false 不同为true
- 短路问题:短路与 短路或 从左到右计算 只要通过运算符左边的操作数就可以确定该逻辑表达式的值, 就不会继续计算运算符右边的值 提高效率 (以后建议使用)
- 位运算符
- 位运算 左移一位 就是* 2 <<3 * 4 = 3<<2
- 右移一位 就是/2 >> 12/4 = 12>>2
- 移位算法效率高且专业 能够使用额时候建议使用。
- 字符串连接符 +
String a = "3"; Int b = 4; a+b = 34 //而不是7 结果是字符串34 不是int类型
- 条件运算符(三目条件运算符) 需要注意的就是三目运算符的结合性 是从右向左的 不是从左向右的
-
boolean b= true? false: true == true? false: true; System.out.println(b);// 输出的就是false 考察的是两点 一点就是 三运算符 的右结合性 另一点就是== 和 三运算符的优先级关系
- 算数运算符规则 :
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/92329.html