1.标识符
凡是自己可以起名字的地方都叫标识符;
2.Java中的名称命名规范:
包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个
单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
注意1:在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。
注意2:java采用unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用。
3.数据类型
数据类型分为基本数据类型和引用数据类型
long形变量必须以小写L或者大写L结尾
基本数据类型:int4 long8 float4 double8 char1 boolean1 byte1 short2
引用数据类型:
类:class
接口:interface
数组:array []
浮点型:
float:4个字节 单精度 精确到七位有效数字
double:8字节 精确到十四位有效数字
float 形变量必须以小写或者大写f结尾 如 float a = 123f;
一个字符=2个字节
自动类型转换:
byte、short、char ->int long float double 依次自动提升 前三种类型做运算转换为int
强制类型转换:
int i = (int) d1;
public static void main(String[] args) {
char x = 'x';
int i = 10;
System.out.println(true? x : i);
System.out.println(true? 'x' : 10);
}
答案:
120
x
/*
* 如果其中有一个是变量,按照自动类型转换规则处理成一致的类型;
* 如果都是常量,如果一个是char,如果另一个是[0~65535]之间的整数按char处理;
* 如果一个是char,另一个是其他,按照自动类型转换规则处理成一致的类型;
*/
4.String :
string属于引用数据类型
声明String类型是,使用一对” “。
char 里面必须放一个类型。
string可以和八种数据类型做运算的,且运算只能是连接运算: +
例子:
int number = 1001;
String numberStr = ‘学号:";
String info = numberStr + number;
输出:学号1001
String 不能转换为那八个类型。
5.关于进制:
对于整数,有四种表示方式:
二进制(binary) :0,1 ,满2进1.以0b或0B开头。
十进制(decimal) :0-9 ,满10进1。
八进制(octal) :0-7 ,满8进1. 以数字0开头表示。
十六进制(hex) :0-9及A-F,满16进1. 以0x或0X开头表示。此处的A-F不区分大小写。
如:0x21AF +1= 0X21B0
进制转换:
对应着2的零次幂,2的一次幂,2的二次幂
二进制的整数有如下三种形式:
原码:直接将一个数值换成二进制数。最高位是符号位
负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。
负数的补码:其反码加1。
计算机以二进制补码的形式保存所有的整数。
正数的原码、反码、补码都相同
负数的补码是其反码+1
所以-14的二进制就是最下面的补码
给个负数就可以按照步骤推回去
十进制转为二进制
二进制转八进制
6.运算符
算数运算符:
+ - + - * / % ++ -- +
取模,取余运算符,与被模数的符号一样 :
12%5=2,-12%5=-2,-12%-5=-2,12&-5=2;
运算符+= *= ++ --不会改变数据类型。也就是说不会自动发生类型转换
int i =1;
i*=0,1;
编译能通过,不会自动变成double
比较运算符 > < >= <=,没啥好说的~
逻辑运算符:
逻辑运算符只能适用于BOOL类型的变量。
&-逻辑与 | 逻辑或 !-逻辑非
&& 短路与 a^b 逻辑异或
这里和C++不一样
短路即 (false && true) 如果运行到第一个即已经为false,不会再往后运行。
位运算符:
左移,右移等。
位运算符
交换两个数,按位异或的方法。
三元运算符:
(条件表达式)?表达式1:表达式2