一、基础知识
1、上节课补充:
- jdk全称:Java Developer Kit
- jre全称:Java Runtime Enviroment
- jvm全称:Java Virtual Machine
2、Java11的特性
jshell
System.out.printh(".....")
/exit
3、Java基本语法
(1)命名
名称由字母、数字、下划线(_)、$符号组成
不能以数字开头
名称不能使用Java关键字
命名不能用汉字,能少用拼音少用,最好用英文
代码中的命名严禁使用拼音和英文混合方式
-
类名要注意使用驼峰命名法
[^ 2、首字母小写]:
(2)注释
- 单行注释:// ....... (//与内容中间有一个空格字符)
- 多行注释
/*
*.......
*.......
*/
- 文档注释
/**
*.....
*.....
*/
二、数据类型
1 基本数据类型 2 byte 1个字节 范围:-2^7……2^7-1 3 short 2个字节 范围:-2^15……2^15-1 4 int 4个字节 范围:-2^31……2^31-1 5 long 8个字节 范围:-2^63……2^63-1 6 float 4个字节 范围:-3.40E+38……+3.40E+38 7 double 8个字节 范围:-1.79E+308……+1.79E+308 8 char 2个字节 范围:0……2^16-1 9 boolean 1个字节 范围:true,false
二进制代码第一位是符号位,0为+,1为-
1、变量(四类八种)
(1)整型
原码,反码,补码
如:正数:00011110 反码和补码都是本身
负数:10111000 反码除了符号位其余取反,补码=反码+1
(2)浮点型
单精度浮点数float
单精度浮点数在机内占4个字节、有效数字8位、表示范围;-3.40E+38 ~ +3.40E+38
image-20201023151500805.png
双精度浮点数double
双精度浮点数在机内占8个字节、有效数字16位、表示范围:-1.79E+308 ~ +1.79E+308
image-20201023151704536.png
浮点数计算
- 符号位:0代表正,1代表为负
- 指数位:用于存储科学计数法中的指数数据,并且采用移位存储,移位储存为127,二进制为1111111
- 尾数部分尾数部分
image-20201023151847324.png
指位数
8位的指数位能表示的指数范围就应该为:-127-128了,所以指数部分的存储采用移位存储,存储的数据为元数据+127
首先看下8.25,用二进制的科学计数法表示为:1.0001*2+
符号位为:0,表示为正,指数位为:3+127=130 ,位数部分为0001,故8.25的存储方式如下图所示:
单精度浮点数8.25的存储方式
(3)字符型char
占用两个字符
System.out.printein(Integer.to BiuaryString(..)) 把内容转为二进制
发展
- Ascll 第一个美国码表对应 7位
- ISO 8859-1 适合部分西欧国家 8位
- GBK 中国的码表 8位
- Unicode 全国统一码表 8位
- UTF-8 英文占一个字节,某些语言占两个字节,中国汉字占三个字节(可扩展) 8位
(4)布尔型boolean
判断真假;trun为真,false为假
名称 | 符号 | 效果 |
---|---|---|
与 | & | 有一个为假,结果为假 |
或 | | | 有一个为真,结果为真 |
非 | ! | 取反 |
异或 | ^ | 相同为假,不同为真 |
逻辑运算
class demou{
public static void main(String args[]){
boolean a = true;
boolean b = false;
System.out.println(a & b);
System.out.println(a | b);
System.out.println(!a);
System.out.println(a ^ b);
}
}
三、运算符
1、算术运算符
(1)简单的算术运算符
算术运算符 | 名称 | 举例 |
---|---|---|
+ | 加 | 5+5=10 |
- | 减 | 5-5=0 |
* | 乘 | 2*2=4 |
/ | 除 | 2/2=1 |
% | 求余 | 5%2=2…1 |
++ | 自增1 | int i=5;i++ |
-- | 自减1 | int i=5;i-- |
当++或--在前面时是先运算结果再赋值最后执行
当++或--在后面时是先执行再赋值
(2)赋值运算符
运算符 | 名称 | 举例 |
---|---|---|
= | 赋值 | c = a+b |
+= | 加等于 | c += a等于c=c+a |
-= | 减等于 | c -= a等于c=c-a |
*= | 乘等于 | c *= a等于c=c*a |
/= | 除等于 | c /= a等于c=c/a |
2、逻辑运算符
(1)比较运算符
比较运算符用于判断两个数据的大小,比较的结果是一个布尔值( true 或 false )。
逻辑运算符 | 名称 | 举例 | 结果 |
---|---|---|---|
> | 大于 | a = 5;b = 2;a > b; | true |
< | 小于 | a = 5;b=2;a < b; | false |
>= | 大于等于 | a >= 5;a >=3; | true |
<= | 小于等于 | a = 5;b=2;b <= a; | true |
== | 等于 | a = 5;b=2;a == b; | fales |
!= | 不等于 | b = 2;b != 2; | fales |
public class HelloWorld{
public static void main(String[] args) {
int a=16;
double b=9.5;
String str1="hello";
String str2="imooc";
System.out.println("a等于b:" + (a == b));
System.out.println("a大于b:" + (a > b));
System.out.println("a小于等于b:" + (a < b));
System.out.println("str1等于str2:" + (str1.equals(str2)));
}
}
(2)逻辑运算符
逻辑运算符 | 名称 | 举例 | 结果 |
---|---|---|---|
&& | 与 | a && b | 如果a与b都为true,则输出为true |
|| | 或 | a || b | 如果a与b任一个为true,则输出为true |
! | 非 | !a | 如果a为false,则输出true |
^ | 异或 | a ^ b | 如果a与b有且只有一个为true,则输出true |
3、三目运算符
String str = (5>2) ? "5大于2" : "5不大于2" ;
System.out.println(str);
4、移位运算符
- << : 左移运算符,num << 1,相当于num乘以2
- >> : 右移运算符,num >> 1,相当于num除以2
- >>> : 无符号右移,忽略符号位,空位都以0补齐
int a = 1 << 2; //1向左移动两个单位(1*2^2)
int b = 1 >> 2; //1向右移动两个单位
移位时要注意不要溢出1
四、常量转换
short num3 = 129;
byte num4 = (byte)num3;
System.out.println(num4); //num4 = -127
short num6 = num5;
System.out.println(num6); /num6 = 102