JAVA小知识
注释
注释不会被执行,是写给写代码的人看的
Java注释有三种
- 单行注释
- 多行注释
- 文档注释
标识符
关键字
Java所有组成部分都需要名字。
类名变量名以及方法名都被称为标识符
标识符注意点
- 所有标识符都必须以字母(A-Z或a-z)、美元符($)、或者下划线(_)开始
- 首字符之后可以是字母A-Z或a-z)、美元符($)、或者下划线(_)或数字的任何字符组合
- 不能使用关键字作为变量名或者方法名
- 标识符大小写敏感
- 可以使用中文命名,但不建议使用
数据类型
- 强类型语言:要求变量使用要符合一定规定,所有变量必须先定义后使用(eg:java、c#)
- 弱类型语言(vb、js)
Java数据类型
- 基本类型
- 数值类型
整数类型:byte(一字节)、short(两字节)、int(四字节)、long(八字节)
浮点类型:float(四字节)、double(八字节)
字符类型:char(占两个字节)
- boolean类型:占一位只有ture和false两个 - 引用类型
类
接口
数组
public class Demo01 {
public static void main(String[] args) {
String b="孙世鑫";
int a=10;
System.out.println(b);
System.out.println(a);
//八大数据类型
//整数
byte num1= 100;
short num2=1000;
int num3=10000;//最常用
long num4=1000000L;//long类型通常在数字后面加上L,便于标识
//小数:浮点数
float num5=50.222F;
double num6=3.1415926535;
//字符,只代表一个字,不能为两个或更多
char name='a';
//字符串,String不是关键词,是一个类
String name2="孙世鑫会变有钱";
//布尔值:是非
boolean flag=true;
boolean disable=false;
//整数拓展:进制 二进制0b 十进制 八进制0 十六进制0x
int i=10;
int i2=010;//八进制0
int i3=0x10;//十六进制0x 0~9 A~F 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("=======================================================================================");
//浮点数拓展 银行业务怎么表示(算钱)
//float 表现得字长是有限的,且是离散的,存在舍入误差(大约,接近但不等于),所以尽量不要使用浮点数进行比较
//double
float f = 0.1f;//0.1
double d = 1.0/10; //0.1
System.out.println(f==d);//false
System.out.println(f);
System.out.println(d);
float d1 = 123123123123123123123f;
float d2 = d1 + 1;
System.out.println(d1==d2);//true
System.out.println("=========================================================");
//字符拓展
char c1='a';
char c2='中';
System.out.println(c1);
System.out.println((int)c1);//强制转换
System.out.println(c2);
System.out.println((int)c2);//强制转换
//强制转换->所有字符本质还是数字
//编码 Unicode 表:(97=a;65=A) 2字节 最多可以表示65536
char c3='\u0061';
System.out.println(c3);
//转义字符 eg:\t(制表符)、\n(换行)
System.out.println("孙世鑫\t最美");
System.out.println("孙世鑫\n最美");
String sa = new String("孙世鑫最美");
String sb = new String("孙世鑫最美");
System.out.println(sa==sb);
String sc ="孙世鑫最美";
String sd = "孙世鑫最美";
System.out.println(sc == sd);
//对象 从内存分析
//布尔值扩展
boolean flag2 = true;
if (flag2){}
if (flag2==true){}
//上面两个相等
}
}
类型转换
优先级:
byte,short,char->int->long->float->double
public class Demo02 {
public static void main(String[] args) {
int i = 128;
byte b = (byte)i;//内存溢出
double c = i;//double是最高级
//强制转换 (类型)变量名 高-->低
//自动转换 低-->高
System.out.println(i);
System.out.println(b);
System.out.println(c);
/*
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.把高容量转换到低容量的时候。强制转换
4.转换时可能会出现内存溢出或者精度问题
*/
System.out.println("====================================");
System.out.println((int)23.4);//23
System.out.println((int)-33.4f);//33
System.out.println("=================================");
char e='a';
int h=e+1;
System.out.println(h);
System.out.println((char)h);
}
}
溢出
public class Demo03 {
public static void main(String[] args) {
//操作比较大的数的时候,注意溢出问题
//JDK7特性,数字之间可以用_隔开方便判断数的大小
int money = 10_0000_0000;
int years = 20;
int total1 = money*years;
System.out.println(total1);//-1474836480, 计算时溢出
long total2 = money*years;
System.out.println(total2);//-1474836480, 系统默认为int型
long total3 = money*((long)years);
System.out.println(total3);//20000000000
}
}
变量
可以变化的量
每个变量都必须有它的类型
public class Demo05 {
//类变量 static
static double salary =10000;
//属性: 变量
// 实例变量:从属于对象;如果不自行进行初始化,返回这个类型的初始值 0、0.0、u0000、false(布尔值)
//除了基本类型,其余的默认值都是null
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量;必须声明和初始化值
int i = 10;
System.out.println(i);
//变量类型 变量名字 = new Demo05();
Demo05 demo05 = new Demo05();
System.out.println(demo05.age);
System.out.println(demo05.name);
//类变量 static
System.out.println(salary);
}
//其他方法
public void add(){
}
}
常量
初始化后不能改变的值
常量名一般全是大写
public class Demo06 {
//常量:final
//double前面修饰符,不存在先后顺序
static final double PI = 3.14;
final static double PI2 = 3.14;
public static void main(String[] args) {
System.out.println(PI);
System.out.println(PI2);
}
}
变量的命名规范
- 所有变量、方法、类名必须见名知意
- 类成员变量:首字母小写和驼峰原则:lastName、mouthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man、Name
- 方法名:首字母小写和驼峰原则:run()、runRun()