JavaSE基础
Java八大基本数据类型
代码片段如下:
public static void main(String[] args) {
//八大基本数据类型
int num1 =10; //最常用
byte num2=20;
short num3= 30;
long num4 =30L; //Long类型要在数字后面个个L
//小数:浮点数
float num5 =50.1F; //float类型要在数字后面加个F
double num6 =3.141592638462643;
//
//字符
char name='A';
//字符串,String不是关键字,类
//String name="鑫锐";
//布尔值
boolean flag=true;
}
java数据类型扩展及面试题
代码片段如下:
//整数扩展: 进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010;//八进制0
int i3 = 0x10;//十六进制0x 0~9 A~F 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("==================================================");
//==================================================
//浮点数扩展? 银行业务怎么表示?
//BigDecimal 数学工具类
//==================================================
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
float f = 0.1f;//0.1
double d = 1.0 / 10;//0.1
System.out.println(f == d);//false
float d1 = 2312121231231f;
float d2 = d1 + 1;
System.out.println(d1 == d2);//true
//==================================================
//字符扩展?
//==================================================
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int) c1); //强制转换
System.out.println(c2);
System.out.println((int) c2);//强制转换
//所有的字符本质还十数字
//编码 Uniclde 2字节 表(97=a 65=A) 0 - 65535 Excel 2 16 =65536
//U0000 UFFFF
char c3 = '\u0061';
System.out.println(c3);//a
//转义字符
// \t 制表符
// \n 换行
System.out.println("Hello\tWorld");
//
System.out.println("=========================");
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa == sb);
String sc = "hello world";
String sd = "hello world";
System.out.println(sc == sd);
//对象 从内存分析
//布尔值扩展
boolean flag = true;
if (flag == true) { } //新手
if (flag) { } //老手
//Less is More 代码要精简易读
Java类型转换
代码片段如下:
int i=128;
byte b=(byte) i;//内存溢出
double f=i;
//强制转换 (类型)变量名 高--低
//自动转换 低--高
System.out.println(i);
System.out.println(b);
/*
1、注意点:不能对布尔值进行转换
2、不能八对象类型转换为不相干的类型
3、在把高容量转换到低容量的时候,强制转换
4、转换的时候可能存在内存溢出,或者精度问题!
*/
System.out.println("=====================");
System.out.println((int)23.7); //23
System.out.println((int)-45.89); //-45
System.out.println("=================");
char c='a';
int d=c+1;
System.out.println(d);
System.out.println((char)d);
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money=10_0000_0000;
int years=20;
int total= money*years;//-1474836480,计算的时候溢出了
long total2= money*years;//计算完默认是int,转换之前已经存在问题了?
long total3= money*((long)years);
System.out.println(total3);
Java变量、常量、作用域
代码片段如下:
// int a,b,c;
// int a=1,b=2,c=3; //程序的可读性
String name=" xinxing";
char x='X';
double pi=3.14;
// 类变量 static
static double salary=2500;
// 属性:变量
// 实例变量:从属于对象;如果不自行初始化,这个类型的默认值
// 布尔值:默认是false
// 除了基本类型,其余的默认值都是null
String name;
int age;
// main方法
public static void main(String[] args) {
// 局部变量;必须声明和初始化值
int i=10;
System.out.println(i);
// 变量类型 变量名字 =new com.Amuese.base.Demo08();
Demo08 demo08=new Demo08();
System.out.println(demo08.age);
System.out.println(demo08.name);
// 类变量 static
System.out.println(salary);
}
// 其他方法
public void add(){
}
// 修饰符,不存在先后顺序
final static double PI= 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
Java基本运算符
代码片段如下:
// 二元运算符
// Ctrl + D :复制当前到下一行
int a =10;
int b =20;
int c =25;
int d =25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
long a=123123123123313123L;
int b=123123123;
short c=19;
byte d =8;
System.out.println(a+b+c+d); //Long
System.out.println(b+c+d); //int
System.out.println(c+d); //short
// 关系运算符返回到结果: 正确,错误 布尔值
// if
int a = 10;
int b = 20;
int c = 21;
System.out.println(c%a); //c/a 21/10...1
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a == b);
System.out.println(a != b);
java自增自减运算符、初识Math类
代码片段如下:
// ++ -- 自增,自减 一元运算符
int a = 3;
int b = a++; //执行完这行代码后,先给b赋值,在自增
//a++ a=a+1
System.out.println(a);
//a++ a=a+1
int c = ++a; //++a a=a+1 执行完这行代码钱,先自增,在给b赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
// 幂运算 2^3 2*2*2 =8 很多运算我们会使用一些工具类来操作
double pow = Math.pow(2, 3);
System.out.println(pow);
java逻辑运算符、位运算符
代码片段如下:
// 与(and) 或(or) 非(取反)
boolean a =true;
boolean b =false;
System.out.println("a && b"+(a&&b)); //逻辑与运算:两个变量都为真,结果才为真
System.out.println("a || b"+(a||b)); //逻辑或运算:两个变量有一个为真,则结果才为真
System.out.println("!(a && b)"+!(a&&b)); //如果是真,则变为假,如果是假则变为真
// 短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
}
/*
A = 0011 1100
B = 0000 1101
------------------------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B = 1111 0010
2*8 = 16 2*2*2*2
效率极高
<< *2
>> /2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 3
0000 0101 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);
java三元运算符及小结
代码片段如下
int a=10;
int b=20;
a+=b; //a =a + b
a-=b; //a =a - b
System.out.println(a);
// 字符串连接符 + , String
System.out.println(a+b);
System.out.println(""+a+b);
System.out.println(a+b+"");
// x ? y : z
// 如果x==true ,则结果为y,否则结果为z
int score = 80;
String type = score < 60 ? "不及格" : "及格"; //必须掌握
// if
System.out.println(type);
JavaDoc生成文档
代码片段如下:
String name;
/**
*
* @param name
* @return
* @throws Exception
*/
public String test(String name)throws Exception{
return name;
}
// 我是通过命令行
// 作业:学会查找使用IDEA生产JavaDoc文档 面向百度编程!