标识符
-
任何标识符都由字母、美元符$、下划线开始。
-
首字母之后,可以是字母、美元符$、下划线和数字的任意组合。
-
标识符大小敏感
数据类型
八大基本数据类型
String不是基本数据类型,而是一个类
位bit,计算机 内部数据 存储的基本单位
字节byte,计算机 数据处理 的基本单位,用大写B表示
1B = 8bit
整数拓展
1.不同进制
二进制以0b开头 后面跟0或1
八进制以0开头 后面跟0~7
十六进制以ox开头 后面可以跟0~9 A~F
public class demo1 {
public static void main(String[] args) {
//整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;//十进制中的10
int i2 = 010;//八进制中的8
int i3 = 035;//八进制中的29
int i4 = 0x1A;//十六进制中的26
int i5 = 0xBC;//十六进制中的11*16+12=188
int i6 = 0b11111;//二进制中的31
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
System.out.println(i5);
System.out.println(i6);
}
}
浮点数拓展
public class fudian {
public static void main(String[] args) {
float f = 0.1f;
double d = 1.0/10;//浮点数是有限的、离散的,结果会进行舍入误差,接近但不等于一个数
System.out.println(f==d);//false
System.out.println(f);
System.out.println(d);
float f1 = 2323123412341234f;
float f2 = f1 + 1;
System.out.println(f1==f2);//true
}
}
拓展:银行业务中怎么表示钱? 用BigDecimal类
最好完全避免使用浮点数进行比较!!!
最好完全避免使用浮点数进行比较!!!
最好完全避免使用浮点数进行比较!!!
字符拓展
char c1 = '唐';
char c2 = '震';
System.out.println(c1);
System.out.println((int)c1);//将字符类型强制转换为int类型再输出
System.out.println(c2);//所有字符都可以由一个数字组合来表示
System.out.println((int)c2);
//所有字符本质还是数字
唐=21776 震=38663
所有字符本质还是数字
Unicode编码
//Unicode编码 占2个字节 可以表示2^16=65536个字符
//常用 U0000~UFFFF 表示
char uni1 = '\u0062';//b
char uni2 = '\u0078';//x
char uni3 = '\u00B2';//²
char uni4 = '\uF062';//
System.out.println(uni1);
System.out.println(uni2);
System.out.println(uni3);
System.out.println(uni4);
转义字符
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb);//false
String sc = "hello world";
String sd = "hello world";
System.out.println(sc==sd);//true
为什么上面不同,下面相同?
布尔值拓展
//布尔值拓展
boolean flag = true;
if(flag==true){
System.out.println("same1");
};
if(flag){
System.out.println("same2");
};
上述两种if的条件判断都可行,下面一种更简洁。
类型转换
数据类型优先级
从低到高分别是:byte,short,char—>int—>long—>float—>double
优先级从高到低,强制转换。(类型)变量名
优先级从低到高,自动转换。
int i = 128;
byte b = (byte)i;
System.out.println(i);//128
System.out.println(b);//-128 (byte类型范围是[-128,127],超过就会内存溢出)
char c = 's';
int d = c+1;
System.out.println((int)c);//115
System.out.println(d);//116
System.out.println((char)d);//t
注意点
-
不能对布尔值进行转换
-
不能把对象类型转换为不相干的类型
-
在把高容量转换到低容量的时候,强制转换
-
转换的时候可能存在内存溢出
System.out.println((int)233.44);//233 System.out.println((int)-123.66);//-123
-
数字之间可以用下划线分割
int money = 123456789; int money2 = 1_234_567_89; System.out.println(money);//123456789 System.out.println(money2);//123456789,下划线并会输出
操作较大的数时,注意溢出问题
int money = 10_0000_0000;
int years = 20;
int total = money*years;//-1474836480,计算时溢出了
long total2 = total;
System.out.println(total);
System.out.println(total2);//先计算结果,此时为int型,但转换前已经出现问题了,
//此时无法将结果转换为long型再输出
long total3=money*(long)years;//先把一个数转换为long型,计算结果就作为long型
System.out.println(total3);//20000000000,结果正常
变量、常量
-
尽量一行只声明1个值
//int a=1,b=2,c=3; //不要这样子写,会让程序可读性变差 int a=1; int b=2; int c=3;
类变量、实例变量、局部变量
//类变量 static
static double salary = 270000;
//实例变量,从属于对象。如果不自行初始化,就为这个类型的默认值
//数字类默认是0或0.0 ; 布尔值默认是false。
//除了基本类型,其余的默认值都是null
String name;
int age;
boolean fake;
//main方法
public static void main(String[] args) {
//局部变量。必须声明和初始化值
int i = 10;
//System.out.println(i);
//变量类型 变量名字 = new 类名();
bianliang bian = new bianliang();
System.out.println(bian.name);//null
System.out.println(bian.age);//0
System.out.println(bian.fake);//false
}
常量
//常量,一般都用大写字母表示
static final double PI1 = 3.14;
final static double PI2 = 3.14;
//final是修饰符,不存在先后顺序,在static前后都可以
public static void main(String[] args) {
System.out.println(PI1);
System.out.println(PI2);
常量一般用大写字母表示
final是修饰符
变量的命名规范
所有变量、方法、类名:见名知意
类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写 lastName
局部变量:首字母小写和驼峰原则
常量:大写字母和下划线:MAX_VALUE
类名:首字母大写和驼峰原则:Man,GoodMan
方法名:首字母小写和驼峰原则:run(),runRun()
标签:String,9.18,int,System,static,println,out From: https://www.cnblogs.com/tangzhen123/p/16705922.html