*关键字:
abstrack assert boolean break byte......
*标识符:(别用中文)(不能使用关键字)
Java所有的组成部分都需要名字
类名,变量名以及方法名都被称为标识符
*强类型语言(要求严格)
变量的使用要严格符合规定,所有变量都必须先定义再使用
String a;
System.out.println(a); (出现错误)
*弱类型语言(要求宽松)
玩不出事就可以
*Java的基本数据分为两大类
*基本类型(primitive type)
数值类型:
字节范围:byte(-128-127) short(+-三万多) int(+-21亿多) long(+-老多了)long num=30L;
浮点类型:
字节范围:float(4字节) float num = 50.1F;
double(8字节)
字符类型: char(2字节)
数值、浮点、字符类型统称为数值类型
布尔类型:
占1位(最low的) boolean : true / false
*引用类型:(reference type)
类(String) 接口(interface) 数组(array)
*什么是字节?
*位(bit),是计算机存储的最小单位
*字节(byte):计算机中处理数据的基本单位,习惯上用B来表示
1B = 8bit
*字符:计算机中 使用的字母 数字 符号 bit -> B -> KB -> MB -> GB
//////////////////////////////////////////////////////////////////////////////////
拓展:
*整数拓展:进制 二进制0b 八进制 十进制0 十六进制0x
int i = 10; int i2 = 010; int i3 = 0x10; (10,8,16)
*浮点数拓展:
float :
//float 有限 离散 舍入误差 大约 接近但不等于
float f = 0.1F;
double f1 = 1.0/10;
System.out.println(f == f1); //false
float s1 = 123123123123f;
float s2 = s1 + 1;
System.out.println(s1 == s2); // true
//最好完全避免浮点数进行比较//最好完全避免浮点数进行比较 //最好完全避免浮点数进行比较//最好完全避免浮点数进行比较 //最好完全避免浮点数进行比较//最好完全避免浮点数进行比较 //最好完全避免浮点数进行比较//最好完全避免浮点数进行比较 //最好完全避免浮点数进行比较//最好完全避免浮点数进行比较 //最好完全避免浮点数进行比较//最好完全避免浮点数进行比较 //最好完全避免浮点数进行比较//最好完全避免浮点数进行比较
*字符拓展:
char str = ‘a‘; System.out.println((int)a); //所有的字符本质还是数字
*编码:
Unicode(2字节 表(97 = a A = 65) 可以表示65536个字符 2的16次方)
U0000 UFFFF
char c3 = "/u0061";(转义) System.out.println(c3) // a
*转义字符:"\t"制表符 "\n"换行 ......
*由于java是强类型语言,所以在进行某些运算时,需要进行数据类型转换
低--------------------------------->高
byte,short,char->int->long->float->double (小数的优先级一定大于整数)
*运算中,不同的数据类型先转化为同一类型,然后进行计算
强制类型转换 (类型)变量名 高->低
int i = 128;
byte i1 = i;
System.out.print(i1);//-128 byte max_value 127 内存溢出
自动类型转换 低->高
int i = 128;
double i2 = i;
System.out.print(i2);//128.0
*注意点*
1.不能对布尔值进行类型转换
2.不能把对象类型转换为不相干的类型(人不能变成猪 但是男人能变成女人)
3.在把高容量转为低容量时 强制转换
4.转换时可能存在内存溢出或者精度问题
System.out.println((int)23.7); //23
System.out.println((int)-45.89F); //-45
char c = ‘a‘;
int i = 1;
System.out.println(c + i); // 98
System.out.println((char)(c + i));//b
public class Demo02 {
//操作比较大的数的时候注意溢出问题
//JDK7新特性 数字之间可以用下划线分割 ___
public static void main(String[] args) {
int money = 10_0000_0000;
System.out.println(money);
int years = 20;
int total1 = money * years; //-1474836480计算的时候溢出了
long total2 = money * years; //默认是int 转换之前就已经存在问题了
long total3 =(long) money *years;//先把一个数转换成long
System.out.println(total3); //默认是int 计算完成之后转
}
}
可以变化的量
Java是一种强类型语言,每个变量都必须声明其类型
Java变量是程序中最基本的存储单元
变量包括:变量名,变量类型,作用域 type name = value;
注意事项:
- 每个变量都有类型,类型可以是基本类型(byte,short,int),也可以是引用类型(Byte,Integer)
- 变量名必须是合法的标识符
- 声明变量是一条完整的语句,因此每一个声明都必须以分号结束 int a = 1;
public class Demo03 {
//基本数据类型
int a = 1;
int b = 2;
int c = 3;
char x = ‘a‘;
double pai = 3.14;
//程序可读性 int a=1,b=2,c=3;
//引用数据类型
String name = "傻篮子";
}
变量的作用域
- 类变量
- 实例变量
- 局部变量
public class Demo04 {
//属性:变量
//实例变量:从属于对象,如果不进行初始化 就是这个类型的默认值
//布尔值:默认false
//除了基本类型 其余的默认值都是null
//类变量
static double salary = 2500;
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量:必须声明和初始化值
int i = 10;
System.out.println(10);
Demo04 demo04 = new Demo04();
System.out.println(demo04.age);
System.out.println(demo04.name);
System.out.println(salary);
}
//其他方法
public void add(){
}
}
(Constant):初始化(initialize)后不能再改变值!不会变动的值
常量可以理解成为一种特殊的变量,它的值被设定后,在程序运行期间不允许被改变
final 常量名 = 值; final int NUM = 1;
常量一般使用大写字符
public class Demo05 {
//修饰符不存在先后顺序 final static double PI = 3.14;
static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
变量命名规则:
- 见名知意
- 驼峰命名
- 常量大写
算数运算符
package operator;
public class Demo01 {
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 Demo02 {
public static void main(String[] args) {
long a = 123123123L;
int b = 123;
short c = 10;
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 Demo03 {
public static void main(String[] args) {
//关系运算符返回的结果:正确,错误,布尔值
//if else
int a = 10;
int b = 20;
int c = 21;
System.out.println(c%a);// c/a = 21/10 = 2/....1 取余,模运算
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a == b);
System.out.println(a != b);
}
}
原文:https://www.cnblogs.com/gokou-ruri/p/13600512.html