java学习第二天
01. 注释
单行注释 //
多行注释
文本注释
02. 标识符
关键字
标识符注意点
开头
字母
大小写
03. 数据类型
强类型语言
弱类型语言
java的数据类型分为两大类
· 基本类型
· 引用类型
· java的数据类型分为两大类
基本类型
引用类型
八大基本数据类型
int
byte
short
long
浮点数
float 有限的 离散的 舍入误差 大约 接近但不等于
double
最好完全使用浮点数进行比较
字符类型
char
字符串
String
布尔
04. 什么是字节
整数拓展
··· 进制 |二进制|十进制|八进制|十六进制
浮点数
浮点数扩展 ? 银行业务怎么表示? 钱 ?
BigDecimal 数学工具类
字符拓展
所有字符的本质还是数字
编码 Unicode 表 2字节 65536 Excel 2^16
U0000 - UFFFF
转义字符
\t 制表符
\n 换行
对象 从内存分析
布尔值拓展
05.类型转换
运算中,不同类型的数据先转化为同一类型,然后进行运算
byte,short , char -->int -->long -->float --double
强制转化 由低到高
自动转化 由高到低
注意
不能对布尔值进行转换
不能把对象类型转换成不相干的类型
在把高容量转换为低容量的时候,强制转换
转换的时候可能存在内存溢出,或精度问题
操作比较大时,注意溢出问题
JDK7新特性,数字之间可以用下划线进行分割
06.变量
public class Dome08 {
public static void main(String[] args) {
int money = 10_0000_0000 ;
int years = 20 ;
//int total1 = money * years ; //在计算的时候就已经溢出了,默认是int , 转换之前就已经存在问题了
long total2 = money * ((long)years) ;//先把数转换成long
// System.out.println(total1);
System.out.println(total2);
}
}
07.作用域
public class Variable{
static int allClicks = 0; //类变量
String str = "Hello , world !" ; //实例变量
public void method(){
int i = 0 ; //局部变量
}
}
变量的命名规范
-
所有变量、方法 、类名:见名知意
-
类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写 lastName
-
局部变量:首字母小写和驼峰原则
-
常量:大写字母和下划线:MAX_VALUE
-
类名:首字母大写和驼峰原则:Man , GoodMan
-
方法名:首字母小写和驼峰原则:run(),runRun()
所以这些都是啥?
我知道变量,但是不知道类成员变量,局部变量,常量,类名,方法名???
08.java语言支持的运算符
算术运算符:
赋值运算符
关系运算符
结果为false or ture
逻辑运算符
位运算符
条件运算符
扩展赋值运算符
package operator;
public class Dome01 {
public static void main(String[] args) {
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);
}
}
数据类型,由低随高
package operator;
public class Dome02 {
public static void main(String[] args) {
long a = 12351251554651L ;
int b = 123 ;
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);//int
}
}
自增 , 自减 、一元运算符的逻辑梳理
package operator;
public class Dome03 {
public static void main(String[] args) {
//自增、自减、一元运算符
int a = 3 ;
System.out.println(a);
int b = a++ ;
//先将a=3的值赋给b, 然后a在增加一
//此时b=3 , a=4
System.out.println(a);
int c = ++a ;
//a先自增1 ,然后复制给c
//此时 a = 5 , c = 5
System.out.println(a);
System.out.println(b);
System.out.println(c);
double pow = Math.pow( 2 , 3 );
System.out.println(pow);
}
}
逻辑运算符梳理
package operator;
//逻辑运算符
public class Dome04 {
public static void main(String[] args) {
//与(and) 或(or) 非(取反)
boolean a = true ;
boolean b = false;
System.out.println("a && b:"+(a&&b));//逻辑与运算:两个变量都为真,结果才为ture
System.out.println("a || b:"+(a||b));//逻辑或运算:有一个变量为真,结果为ture
System.out.println("!(a && b):"+!(a&&b));//如果为真则变为假,如果为假则变为真,只要有一个变量为假则为真,两个变量都为真则为假。
System.out.println("=================================================================");
//短路运算
int c = 5 ;
boolean d = (c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
//与运算的第一个判断语句为假,则运算终止
//输出 d的值为false c的值为5
System.out.println("=================================================================");
int n = 5 ;
boolean m = (n>4)&&(n++<4);
System.out.println(n);
System.out.println(m);
//与运算的第一个判断语句为真,执行第二个判断语句
//输出结果m的值为false, n的值为6
System.out.println("=================================================================");
int e = 6 ;
boolean f = (e<4)||(e++<4);
System.out.println(e);
System.out.println(f);
//非运算的第一个判断语句为假,继续执行第二个判断语句仍为假,
//输出结果f的值为false ,e的值为7
}
}
扩展运算符
package operator;
public class Dome06 {
public static void main(String[] args) {
int a = 10 ;
int b = 20 ;
a += b ; //a = a+b;
System.out.println(a);
a -= b ; //a = a-b;
System.out.println(a);
//字符串连接 + , String
System.out.println(""+a+b);
//结果为1020 ,字符串后连接
System.out.println(a+b+"");
//字符串前,正常加减
}
}
三元运算符
package operator;
//三元运算符
public class Dome07 {
public static void main(String[] args) {
// x ? y : z
//如果判断语句X为真,则执行y, 否则执行z
int score = 80;
String type = score < 60 ? "不及格" : "及格";//必须掌握三元运算符
System.out.println(type);
}
}
注意输入的符号是否是英文符号
运算符的优先级
09.包机制
-
为了更好地组织类,java提供了包机制,用于区别类名的命名空间
-
包语句的语法格式为:
package pkg1[.pkg2[.pkg3]]
-
一般利用公司域名作为包名
-
为了能够使用一个包的成员,需要在就AVAV程序中名曲导入该包,使用“import”语句
import package[.package2...].(classname|*);