public String name = "frank";
private String name1;
static int age = 20;
double b = 0.111;
Person p ;
String a = "张三",b = "李四";//变量还可以这样定义,但不推荐。
class Hello{
public static void main( String args[ ]) {
double salary; //声明变量
salary = 1500.00; //变量赋初值,也可以简化成一句double salary = 1500.00;
System.out.println(salary); //访问变量
}
}
byte a = 50;
byte b = -100;
short a = 1000;
short b = -2000;
int a = 100000;
int b = -200000;
long a = 100000L;
long b = -200000L;
byte a = 127;//正确
byte b = 128;//错误
int a = 10;//输出10
int b = 50;//输出50
int a = 0b11101001;//输出233
int b = 0B00000001;//输出1
int c = 0B00000010;//输出2
int a = 07;//输出7
int b = 017;//输出15
int c = 0123;//输出83
int a = 0X8A;//输出138
int b = 0x1f;//输出31
char x = 96;//表示'字符
//下面4个char变量都输出'a'
char a = 97;//十进制的97
char b = 0x61;//十六进制的97
char c = 0141;//八进制的97
char d = 0b1100001;//二进制的97
char e = 'e';
char f = 'f';
System.out.println(e+f);//输出为203,是ASCII码的数值相加
char a = 'a';
char b = 'C';
char c = '我';
char d = '~';
转义字符
|
含义
|
\r
|
表示接受键盘输入,相当于按下了回车键
|
\n
|
表示换行
|
\t
|
表示制表符Table键
|
\b
|
表示退格键,相当于Back Space
|
\'
|
相当于单引号'
|
\"
|
相当于双引号"
|
\\
|
表示一个斜杠\
|
char a = '\n';
String b = "bbb";
String c = "ccc";
System.out.println(b+a+c); //输出bbb回车ccc
System.out.println(b+c);//bbbccc
char a = '\u8888';//输出'袈'
char a = '\u0061';//unicode值
char b = 97;//十进制的ASCII码所对应的字母
char c = 0141;//八进制的ASCII码对应的字母
char d = 'a';//单个英文字符
boolean a;
a = true;
boolean b = false;
boolean flag = true;
if(flag){
System.out.println("yes~");
}
if(flag==false){
System.out.println("no~");
}
//浮点数无法进行精准运算,因为底层二进制无法精准表述带小数点的十进制
double a = 2.0 - 1.8;
//输出0.19999999999999996
System.out.println(a);
float b = 2.0f - 1.8f;
System.out.println(b);
//解决方案
BigDecimal b1 = new BigDecimal("2.0");
BigDecimal b2 = new BigDecimal("1.8");
System.out.println(b1.subtract(b2).doubleValue());
float a = 234.5f;
float b = 234.0F;
float c = 33f;//输出33.0
double a = 123.4;
double b = 12345.0;
double c = 110D;//输出110.0
double d = 120d;//输出120.0
float a = 3.141566666666666666F;//输出3.1415668
double b = 3.141566666666666666;//3.141566666666667
double a = 5.12e-2;//输出0.0512
double b = 5.12e2;//输出512.0
//正无穷大
double a = 6.0 / 0;//输出Infinity
double b = 255.0 / 0;//输出Infinity
double c = Double.POSITIVE_INFINITY;//输出Infinity
System.out.println(a==b);//输出true
System.out.println(a==c);//输出true
//负无穷大
double d = -15.0 / 0;//输出-Infinity
double e = -244.0 / 0;//输出-Infinity
double f = Double.NEGATIVE_INFINITY;//输出-Infinity
System.out.println(d==e);//输出true
System.out.println(d==f);//输出true
//非数
double g = 0.0/0.0;//输出NaN
double h = Double.NaN;
System.out.println(g==g);//输出false
System.out.println(g==h);//输出false
数据类型
|
默认值
|
byte
|
0
|
short
|
0
|
int
|
0
|
long
|
0L
|
float
|
0.0f
|
double
|
0.0d
|
char
|
'\u0000'
|
String&object
|
null
|
boolean
|
false
|
byte a = 4;
int b = a;//byte可以自动转换成int,因为int比byte大。
char x = 4;
int y = x;
long i = 4;
float j = i;
double a = 1;
int b = 2;
System.out.println(a+b);//输出3.0
byte d = 1;
byte e = 1;
int g = d+e;//2个byte相加,结果是int。
byte f = (byte)(d+e);//2个byte相加,结果是int,int需要强转成byte。
int a = 123456789;
byte b = (byte)a; //进行强制类型转换,b=21,因为发生溢出。
int c = 1;
byte d = (byte)c;//进行强制类型转换,d=1,没有发生溢出。
Person p1 = new Person();
//Person类型的变量p1引用了Person类的实例(变量p1指向了Person类的实例的引用)
//新手玩家可以pass,因为涉及到Java堆栈内存:new Person()会生成一个Person对象的引用,
这个引用指向了p1变量。
//分解动作
Person p1;
//用Person类作为数据类型来声明一个变量p1
p1 = new Person();
//使用new关键字调用Person类的构造方法来实例化对象,
//将对象的引用指向给p1变量(将对象赋值给了p1变量),
//那p1就变成了Person对象的引用,或者说变量p1引用了Person类的对象。
//注意:p1不是对象,而是对象的引用。
Person p1 = new Person();//变量p1指向Person对象
p1 = null;//变量p1指向空。
final String NAME = "张三";//无法修改name的值
final int AGE = 18;
final Person P1 = new Person();//引用类型可以修改其属性,但不能修改对象的引用
P1.name = "李四";
P1.name = "王武";
P1 = null;//出错,不允许这样
final Person p = new Person();
p.age = 18;
p.age = 20;//这样是允许的
String a = "5";
int b = (int)a;//无法直接将字符串转成整型
int b = Integer.valueOf(a);//因此需要使用包装类的方法来实现
// byte
System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);
System.out.println("包装类:java.lang.Byte");
System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);
System.out.println();
// short
System.out.println("基本类型:short 二进制位数:" + Short.SIZE);
System.out.println("包装类:java.lang.Short");
System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);
System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);
System.out.println();
// int
System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
System.out.println("包装类:java.lang.Integer");
System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
System.out.println();
// long
System.out.println("基本类型:long 二进制位数:" + Long.SIZE);
System.out.println("包装类:java.lang.Long");
System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
System.out.println();
// float
System.out.println("基本类型:float 二进制位数:" + Float.SIZE);
System.out.println("包装类:java.lang.Float");
System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
System.out.println();
// double
System.out.println("基本类型:double 二进制位数:" + Double.SIZE);
System.out.println("包装类:java.lang.Double");
System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
System.out.println();
// char
System.out.println("基本类型:char 二进制位数:" + Character.SIZE);
System.out.println("包装类:java.lang.Character");
// 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台
System.out.println("最小值:Character.MIN_VALUE="+ (int) Character.MIN_VALUE);
// 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台
System.out.println("最大值:Character.MAX_VALUE="+ (int) Character.MAX_VALUE);
Integer inObj = 5;
Object boolObj = true;//装箱
int i = inObj;//拆箱