注释不会被执行
单行注释: //注释
多行注释:/* 注释 */
Java的组成,如变量名、方法名、类名等都被称为标识符。
abstract | assert | boolean | break | byte |
---|---|---|---|---|
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | goto | if | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | stritfp | short | static | super |
switch | synchronized | this | throw | throws |
translent | try | void | volatlle | while |
Java分为两种数据类型,分别为基本数据类型和引用数据类型
string不是基础数据类型,是一个类
int
byte
short
long :在数字后要加一个L作为标识
float :在数字后要加一个F作为标识
char
boolean
进制 :在数字前加数字,更换进制
因为浮点是有限位,且离散,有舍入误差,大约,接近但不等于,所以最好完全避免使用浮点数进行比较
银行业务怎么表示钱?
使用Bigdecimal 数学工具类
所有字符本质上都是数字
使用编码 unicode 表:U0000-UFFFF
String a=new String(oriqinal:"hello world"); String b=new String(oriqinal:"hello world"); String.out.println(a=b); String c="hello world"; String d="hello world"; String.out.println(c=d);
结果为
false
true
原因要从内存分析
boolean flag =true; if(flag==true){}//新手 if(flag){}//熟练
低---------------------------------------------------→高
byte,short,char→int→long→float→double
当将类型高的数据转换为类型低的数据时,进行强制转换
(类型)变量名
注意:强制类型转换可能导致内存溢出
当将类型低的数据转换为类型高的数据时,将进行自动转换
自动转换将自动进行
操作比较大的数时,注意溢出问题
容易有内存溢出问题或精度问题
不能对布尔值进行转换
不能将对象类型转化为不相干的类型
变量是程序中的最基本存储单元,要素包括变量名,变量类型和作用域
//数据类型 变量名 =值;
注意:
public static void main(String[] args){ int a = 1;//局部变量 }
实例变量:从属于对象,如果不自行初始化,会为这个类型的默认值 0、0.0
布尔值:默认是false
除了基本类型,其余的类型默认值都是null
public class Day1_2{ int age; }
类变量:static,作用域为整个类
public class Day1_2{ static int a =1; }
初始化后不能再改变值,不会变动的值
//final 常量名 =值 final A =1.0;
注意:常量名一般全部使用大写字符
修饰符不区分前后顺序
所有变量、方法、类名:见名知意
除常量:大写字母和下划线
驼峰原则:除了第一个单词外,其余单词首字母大写
类名:首字母大写和驼峰原则
其余都用:首字母小写和驼峰原则
运算符分为一元运算符、二元运算符等,x元运算符表示有几个运算的数据
整数运算具有long类型的数据时,输出结果的数据为long,其余皆为int类型
运算时,如果有高一级的数据,则输出结果的数据为高一级的数据
整数运算时,如果出现小数,会出现精度问题
幂运算不是^,想要进行幂运算要借助数学类工具
Math.pow(x,y)//=x^y
许多运算都需要借助类工具Math.
自增自减运算符:++、--……
作用:给数据+1或-1
int a =1 a++ //此时a=2
a++与++a的区别
运算符在前(如++a)则先运算,再赋值
运算符在后(如a++)则先赋值,再运算
int a =1 int b = a++ //此时b=1,a=2 int c = ++a //此时c=3,a=3
逻辑运算符:&&、||、!输出值为布尔值
&&:只有运算的两个数据都为真,则输出true
||:只要运算的其中一个数据为真,则输出true
!:运算真,输出假
逻辑运算为短路运算,即如果执行代码时,如果第一个数据可以判断输出结果,则不会继续进行运算
int c =1; System.out.println((c>1)&&(c++)); System.out.println(c);
输出结果为
false
1
因为在第一个括号内c>1已经判断是假,则结果一定为假,因此c++不会被执行
位运算符:&、|、!、>>、<<、>>>、^(异或)
位运算符运算时是基于二进制的运算
位运算符运算效率极高!
/* A=0010 0110 B=1001 0101 ------------------- A&B=0000 0100 A|B=1011 0111 A^B=1011 0011 !B=0110 1010 ------------------- << =*2 >> =/2 0000 0001 1 0000 0010 2 <<1 =2 */
拓展赋值运算符:+=、-=……
a+=b //a=a+b a-=b //a=a-b
x?y:z //判断条件x,如果结果为true则执行y,如果结果为false则执行z
优先级从高到低,优先级为1的优先级最高,优先级为14的优先级最低
语法格式为:
package pkg1[.pkg2[.pkg3...]];
import package1[.package2....].(类名或*);
javadoc 参数 java文件