JavaSE 基础语法一 标识符、数据类型、运算符
java基础入门
作用–常量、变量、方法、类和包等的名称
常规建议:
1.驼峰标识 1.类名,接口名称在命名的时候要首字符大写 2.方法,变量命名的时候首字符要小写 3.多个单词拼接表示一个标识符的时候,每个单词的首字符都大写 2.见名知义 通过标识符的名称能知道代表的含义 千万不要写拼音
命令规则 必须以字母、_下划线、美元符$开头 其他部分可以是字母、下划线_、美元符$和数据的任意组合 大小写敏感、长度无限制 不可用是java的关键字 注意 Java不采用通常语言使用的ASCII字符集 Java采用unicode这样的标准的国际字符集。因此,这里的字母的含义:英文、汉字等等
关键字/保留字
Java关键字是Java语言保留供内部使用的,如Class用于定义类,关键字也可以称为保留字。
字符集简介
ASCII -英文字符集1个字节 128个 ISO8859 -西欧字符集 1个字节 BIG5 台湾的大五码,表示繁体汉字, 2个字节 GB2312 大陆使用最早的、最广的简体中文字符集 2个字节 GBK GB2312的扩展,可以表示繁体中文 2个字节 GB18030 最小GBK的扩展 Unicode 国际通用字符集 2个字节 (utf-8 /utf-16)
Java是一种强类型语言。
强类型表示:变量在定义的时候必须显式的声明类型是什么 java 弱类型表示:变量会根据值自己去推断,不需要指定类型是什么 js python,scala
数据类型 4类8种
1.基本数据类型 整数类型(byte,short,int,long) 不同类型表示不同的长度 byte:使用一个字节存储,因此范围是 -128 ~ 127 short:使用两个字节存储,因此范围是 -32768 ~ 32767 int: 使用四个字节存储,因此范围是 正负21亿 long:使用四个字节存储,因此范围是一般不会超出 注意: 在使用整型类型的时候,默认都是int类型,如果需要使用long类型的话, 必须要在数字后面添加L,建议使用大写 浮点类型(float,double) float: 单精度 4 字节 范围:2^32 double:双精度 8 字节 范围 2^64 字符型 char 占用2个字节,使用的时候使用''表示 布尔类 boolean 只有true和false两值,在存储的时候占1位 2.引用数据类型 类 class 接口 interface 数组
整型常量 -十进制整数,如:99,-60,0 -八进制整数,要求以0开头,如:015 -十六进制数,要求0x 或0X 开头,如:0x15 整型变量 整型常量默认为int型,声明long类型常量可以后加"l"或"L"(建议使用大写) 如:long a=555555 //在int表示范围内21 long b=555555555555 //不加L出错
浮点类型常量 -十进制形式,例如 3.14 314.0 0.314 科学记数法形式如 314e2 314E2 313E-2 e表示10^2 double f=314e2; //314*10^2--->31400.0 double f2=314e-2; //314*10^(-2) ----->3.14 浮点型变量 float类型:单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求 double类型:双精度类型 精度是float类型的两倍,绝大部分应用乘车都采用double类型。 注意: -浮点常量默认为double。要变为float,需要在后面增加F/f 如:3.14f -浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算, 需要使用BigDecimal类
1.单引号用来表示字符常量,例如'A'是一个字符,它与"A"是不同的,"A"表示含有一个字符的字符串 2.char类型用来表示在Unicode编码表中的字符串。 3.Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536个字符;ASCII码占1个字节 ,可允许有128个字符(最高位是0),是Unicode编码表中前128个字符 4.Java语言中还允许使用转义字符'\'来将其后的字符转变为其他的含义 char c2='\n'; //代表换行符 5.char类型在内存中存储的是该字符的Unicode编码值,所以char类型可以当int类型来处理
boolean类型有两个值,true和false boolean 类型用来判断逻辑条件,一般用于程序流程控制 实践: 请不要这样写: if(is ==true && done ==false),只有新手才那么写 对于任何程序员if(whether && !done) .去掉所有的==fasle 和 == true
常量:在程序运行过程中,值不会发生改变的量叫做常量 变量:在程序运行过程中,值会发生改变的量叫做变量 变量:变量名称、变量类型、作用域 1.先声明,后赋值 int a ; 声明 a=10;赋值 2.声明+赋值 int b=5; 注意:在类内,方法外定义的变量叫成员变量,会存在默认值 在方法内,定义的变量必须要进行初始化操作,不会存在默认值 在一行中可以定义多个变量,但不推荐 给变量赋值过程中,变量的值成为常量 使用final关键字修饰的变量称为常量,表示不可修改 注意事项: 1.每个变量都有类型,类型可以是基本类型,也可以是引用类型 2.变量名必须是合法的标识符
使用final 修饰的变量,只能被初始化一次,变成了常量
final 常量是有名称的
1.算术运算符 +,-,*,/,%,++,-- int a = 1; int b= 2; a/b =0 //取整除,或者取商 a%b =1 //取余数,或者取模 单目运算符 // ++ ,表示在变量原有的基础上+1,谁在前,先运算谁 a++ =1 //a=1 a在前先打印输出,然后自加1 ++a =3 //++ 1 2+1 再输出a // -- ,表示在变量原有的基础上-1,谁在前,先运算谁 a-- =3; --a =1; //为什么会是6 ++b+b++=6 2. 赋值运算符 = java中=表示赋值运算符,==表示相等的操作 3. 扩赋值运算符 +=,-=,*=,/= int c =1 ; c = c +2; //两写法意义一样,表示加2的基本操作 c +=2; //类型转换问题,d是byte,d+1 整体变成int类型,需要将int类型的值转换为byte,会有精度损失, 因此需要强转 //建议在进行操作的时候使用扩赋值运算符 面试题:byte d =10; d=d+1; 报错 byte d =10; d+=1; 4.关系运算符: >,<,>=,<=,==,!= 用来比较两个值的关系,返回的值是boolean类型,只有true和false 5.逻辑运算符: &&,||,! 逻辑运算符一般两边的值不是具体的值,而是表达式 // &&: 表示短路与,两边表达式中只要有一个是false,整体结果就是false //两边表达式从左向右开始对比,如果左边的表达式是false,右边不需要进行判断 // ||: 表示短路或,两边表达式中只要有一个是true,整体结果就是true //两边表达式从左向右开始对比,如果左边的表达式是true,右边不需要进行判断 // ! :取反 ,如果是true,取反是false,如果是false,取反就是true // & :与运算符,但是两边都会参与运算 // | :或运算符,两边都会参与运算 if(!(4)) 6.位运算符: &,|,^(异或),~(取反) , 移位 >>,<<,>>> (了解!!!) 作用:只能操作数值,操作的时候会转成二进制进行运算 4 & 5 = 4 4=100 5=101 二进制 & 2个二进制比较 有0都为0 4 | 5 = 5 4=100 5=101 二进制 & 2个二进制比较 有1都为1 4 ^ 5 = 1 4=100 5=101 二进制 & 2个二进制比较 相异为1,相同为0, 0和1位相异,1和1相同为0 ~4 = -5 4=100 取反 011=3 移码,补码、原码、反码???? 把2 变 8最快方法 左移 //左移表示乘以2,右移表示除以2 2 << 3 =16 2=0010 移动一次 0100 移动2次 1000 移动3次 10000## 标题 16 >> 2 16=10000 移1次01000 移两次 00100 2^2 =4 7.条件运算符或者三目运算符 ? : 使用的时候需要跟一个表达式,表达式如果是true,则返回?后的结果,如果是false,则返回:后的结果 例子:3>2 ? 3:2 =3 false?false:true?false:true