注释
单行注释
- //
多行注释
idea (/*加回车)
-
/*
-
*/
文档注释
-
/**
-
*/
用于生成api文档 命令Javacdoc
idea生成api文档
字符
-
;
需要使用分号的地方- 包的声明
- 类的导入
- 属性声明
- 执行的代码
可不加
- 方法声明
- 类与类之间
空白字符
- 使用tab 空格 换行(\n)回车(\r),对代码本身不会有影响
标识符
名字有规范 只能是字母数字下划线和$
开头不能是数字
字符大小写敏感
标识符的长度没有限制
不能使用关键字和保留字
类型
概念
- bit 计算机最小的传输单位
- byte 计算机最小传输单位
- 1byte==8bit
- 1kb== 1024byte
- 1mb==1024kb
- 1g==1024mb
- 1t==1024g
数据类型
- boolean
- char 两个字节 16位
表示字符a
public class TestChar {
public static void main(String[] args) {
//直接
char x = 'a';
//十进制
char y = 97;
//二进制
char z = 0b01100001;
//八进制
char a = 0141;
//十六进制
char b = 0x61;
//十六进制unicode编码
char c = '\u0061';
System.out.println(x);
System.out.println(y);
System.out.println(z);
System.out.println(a);
System.out.println(b);//ctrl alt 加方向键可快速复制当前行
System.out.println(c);
}
}
特殊字符无法直接打印,可通过转移字符\直接换
-
整形
- int 占1个字节 -27~27-1
- byte 占2个字节 -215~215-1
- short 占4个字节 -231~231-1
- long 占8个字节 -263~263-1
- 十进制 -3
- 机器数10000011
- 真值-3
- 原码
- +3 00000011
- -3 10000011
- 反码
- +3 00000011
- -3 11111100
- 补码
- +3 00000011
- -3 11111101
正数原码反码补码都一样
负数 原码->(符号位不变其他按位取反)反码->(反码加一)补码
-
浮点型
- float
- double
浮点计算精度丢失问题
System.out.println(1.0-0.66);
//输出结果: 0.33999999999999997
//add方法 +
//subtract方法 -
//multiply方法 *
//divide方法 /
BigDecimal d1 = BigDecimal.valueOf(1.0);
BigDecimal d2 = BigDecimal.valueOf(0.66);
double result = d1.subtract(d2).doubleValue();
System.out.println(result);
//输出结果:0.34
- 乱码
- GBK 一个字符两个字节
- UTF-8 一个中文三个字节
- ISO-8859-1
变量
基本变量
变量声明
public static void main(String[] args) {
//声明
int a;
//局部变量需要赋值才能使用,声明后对其初始化
//初始化
a=1;
System.out.println(a);
//将a付给b
int b =a;
b=b+1;
System.out.println(b);
}
变量类型转换
(int) (char) (byte) -1 的值,给出步骤
-1 求补码
原码 10000000 00000000 00000000 00000001
反码 11111111 11111111 11111111 11111110
补码 11111111 11111111 11111111 11111111
(byte) -1
11111111 11111111 11111111 11111111
11111111
类型转换
byte->short->int->long
byte->char 没有关系
int -> char 97 -> a
(char) (byte) -1
(int)(byte)-1
11111111 11111111 11111111 11111111
(char)(int)(byte)-1
11111111 11111111 (无符号)
(int) (char) (byte) -1 = 65535
00000000 00000000 11111111 11111111 +1
00000000 00000001 00000000 00000000 65536
public static void main(String[] args) {
//前提:左边的类型=右边的类型
//不一致
int a = 1;//左右都是int
byte b = 10;//左边是byte 但右边的值在左边的范围内,系统会自动转型
//类型转换
//自动类型转换 低精度->高精度
byte c = 1;
int d = c;
//手动类型转换 高精度->低精度
int e = 256;
// byte f = e;//e的精度更高,需要强制转换
byte f = (byte) e;//输出是0
System.out.println(f);
//注意:如果把浮点强制转换成整数 舍弃小数
float g = 1.9f;
int h = (int)g;
System.out.println(h);//输出是1
}
引用变量
用类创建对象
public class Student {
int sno;
String name;
int age;
public void basketball(){
System.out.println("我是练习了" + age +"年的练习生"+name);
};
public static void main(String[] args) {
//创建对象,左边是类,右边是对象
Student s = new Student();
//设置属性
s.name = "萨瓦迪卡";
s.age = 2;
s.sno = 2;
//对象调用方法 对象名.方法名
s.basketball();
}
}
类型转换
- 子父类 子类->父类
- 所有类都继承Object类
- 类型转换
Student s2 = new Student();
System.out.println(s2);
Object o = s2;
Student s3 =(Student) o;
作用
基本数据类型只能接收基本数据类型
引用数据类型只能接收引用类型(对象)
局部变量
public class Demo4 {
public static void main(String[] args) {
/*
局部变量只能在自己的方法内使用
局部变量没有默认值,不赋值无法使用该变量
局部变量的使用在一个大括号{}内使用
*/
int a;
a=1;
System.out.println(a);//不对a赋值无法使用
{
System.out.println("这里可以使用a且"+"a="+a);
}
}
}
全局变量
public class Demo6 {
//全局变量
//有默认值
//int byte short long默认值都是0
//boolean 默认 false
//char 默认 空字符
//double float 默认0.0
//非静态方法共享,静态方法不能共享
int a;//若不赋值,默认为0
byte b;
short c;
long d;
char e;
float f;
double g;
boolean h;
public void test(){
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
System.out.println(g);
System.out.println(h);
}
public static void main(String[] args) {
Demo6 demo =new Demo6();
demo.test();
}
}
操作符
操作符 | 作用 | 例子 |
---|---|---|
= | 最基础的赋值操作符,=号右边的值,赋给=号左边变量 | int a = 1; int x = 0; |
*= | 一个变量和另一个数据相乘,并把结果再赋值给这个变量 | int a = 1; a*=2; //a = a*2; |
/= | 一个变量和另一个数据相除,并把结果再赋值给这个变量 | int a = 2; a/=2; //a = a/2; |
%= | 一个变量和另一个数据相余,并把结果再赋值给这个变量 | int a = 5; a%=2; //a = a%2; |
+= | 一个变量和另一个数据相加,并把结果再赋值给这个变量 | int a = 5; a+=2; //a = a+2; |
-= | 一个变量和另一个数据相减,并把结果再赋值给这个变量 | int a = 5; a-=2; //a = a-2; |
> | 比较是否大于 | 1>0 |
>= | 比较是否大于等于 | 1>=0 |
< | 比较是否小于 | 1<2 |
<= | 比较是否小于等于 | 1<=2 |
instanceof | 判断对象是否属于指定类型 | stu instanceof Student |