java基础上
1.注释
1.1单行注释
单行注释只能注释一行文字
// 我是单行注释
1.2多行注释
多行注释可以注释一段文字
/*
我是多行注释
我是多行注释
我是多行注释
*/
1.3文档注释
会被识别
/**
*@Author hu
*/
1.4注释总结
平常写代码一定要写注释,是一个非常好的习惯
2.标识符
2.1关键字
java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
2.2标识符注意点
-
所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
-
首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或者数字的任何字符组合
-
不能使用关键字作为变量名或方法名。
-
标识符是大小写敏感的
-
合法标识符举例:age、$salary、_value、 _1_value
-
非法标识符举例:123abc、-salary、#abc
-
可以用中文,但是一般不建议使用,也不建议使用拼音
3.数据类型
3.1强类型语言
要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用,例如:Java、c
3.2弱类型语言
例如:JavaScript
3.3java的数据类型分为两大类
-
基本类型
-
引用类型
3.3.1基本数值类型
(1)数值型
整数类型、浮点类型和字符类型
-
整数类型 byte 一个字节范围:-128~127
short 两个字节范围:-32768~32767
int 四个字节范围
long 八个字节范围浮点类型
-
浮点类型
float 四个
double 八个字节
-
字符类型
(2)boolean类型
占一位其值只有true、false
public class Demo02 {
public static void main(String[] args) {
//八大基本数据类型
//整数
int num1 = 10;//最常用
byte num2 = 20;
short num3 = 30;
long num4 = 40L;//Long类型要在数字后面价格L
//小数:浮点数
float num5 = 25.1f;//float类型要在数字后面加
double num = 3.1415926;
//字符
char name = 'h';
//字符串 String不是关键字
String name1 = "hu";
//布尔值
boolean flag = true;
boolean flag1 = false;
}
}
3.3.2引用数据类型
(1)类
(2)接口
(3)数组
3.4整数的拓展
进制
-
二进制0b
-
十进制
-
八进制0
-
十六进制0x
写在数字前边,将该进制数字转换为十进制
public class Demo03 {
public static void main(String[] args) {
//整数扩展:进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i1 = 0b10; //二进制0b
int i2 = 010; //八进制0
int i3 = 0x10; //十六进制0x
System.out.println(i);
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
}
}
运行结果如下:
3.5浮点数拓展
最好完全避免使用浮点数进行比较
public class Demo04 {
public static void main(String[] args) {
//浮点数拓展 银行业务怎么表示
//float 有限 离散 舍入误差 接近但不等于
//double
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
float f = 0.1f;//0.1
double d = 0.1;//0.1
System.out.println(f==d);//输出结果false
float d1 = 234568799999999656f;
float d2 = d1 + 1;
System.out.println(d2==d1);//输出结果ture
}
}
运行结果如下:
3.6字符的拓展
字符的本质还是数字
一些转义字符,如:\t \n
public class Demo05 {
public static void main(String[] args) {
//字符的拓展
char c1 = 'h';
char c2 = '胡';
System.out.println(c1);//输出结果为 h
System.out.println((int)c1);//强制转换 //输出结果为104
System.out.println(c2);//输出结果为hu
System.out.println((int)c2);//强制转换 //输出结果为32993
//所有的字符本质还是数字
//编码 Unicode 表(97 = a 65 = A) 2字节 65536 Excel 2 16 = 65536
//U0000 ~ UFFFF
char c3 = '\u0061';
System.out.println(c3);//输出结果a
//转义字符
// \t 制表符
// \n 换行
System.out.println("hello\tworld");//输出结果为hello world
System.out.println("hello\nworld");
/*
输出结果为
hello
world
*/
}
}
运行结果如下:
3.7布尔值拓展
新手和老手的区别
if(flag = ture)//新手
if(flag)//老手
4.类型转换
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
低------------------------------------------------------>高
byte,short,char—>int—>long—>float—>double
运算中,不同类型的数据先转换为同一类型,然后进行运算。
4.1强制转换
发生在高-->低的时候 (类型)变量名
4.2自动转换
发生在低-->高的时候
注意点: 1.不能对布尔值进行转换 2.不能把对象类型转换为不相干的类型 3.在把高容量转换到低容量的时候。强制转换 4.转换的时候可能存在内存溢出,或精度问题
public class Demo06 {
public static void main(String[] args) {
int i = 128;
byte b = (byte)i;//内存溢出
double c = i;
//强制转换 (类型)变量名 高-->低
//自动转换 低-->高
System.out.println(i);//输出结果为128
System.out.println(b);//输出结果为-128
System.out.println(c);//输出结果为128.0
System.out.println((int)45.1);//45
System.out.println(((int)-45.12F));//-45
char c1 = 'a';
int d = c1 + 1;
System.out.println(d);//输出结果为98
System.out.println((char)d);//输出结果为b
}
}
运行结果如下:
操作比较大的数的时候,需注意溢出问题
public class Demo7 {
public static void main(String[] args) {
int money = 10_0000_0000;
int years = 20;
int total1 = money*years;
int total2 = money*years;//在这里已经默认是int型
System.out.println(total1);//输出结果为-1474836480,计算的时候溢出了
System.out.println(total2);//输出结果同上,转换之前已经存在问题了
long total3 = money * ((long)years);//先把一个数转换为long
System.out.println(total3);//输出结果为:20000000000
//防止将l看为1,故一般long类型的后缀L,一般用大写L
}
}
运行结果如下
5.变量和常量
5.1变量
变量是可以变化的量
Java是一种强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
type varName [=value] [{,varName[=value]}];
//数据类型 变量名 = 值;可以用逗号隔开来声明多个同类型的变量(但是不建议)
注意事项:
每个变量都有类型,类型可以是基本类型,也可以是引用类型。
变量名必须是合法标识符。
变量声明是一条完整的语句,因此每一个声明都必须以分号结束
试例如下
public class Demo08 {
public static void main(String[] args) {
//int a,b,c;不建议
int a = 1;
int b = 2;
int c = 3;
String name = "hu";
char H = 'h';
double d = 123847;
float f = 27391.213444f;
boolean flag = true;
byte t = 12;
}
}
5.2 变量的作用域
-
类变量
-
实例变量
-
局部变量
public class Demo09 {
//类变量static
static double salary = 2500;
//属性:变量
//实例变量:从属于对象:如果不进行初始化,会变成这个类型的默认值
//布尔值:默认是false
//除了基本类型,其余的默认值都是null;
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量:必须声明和初始化值
int i = 10;
System.out.println(i);//10
//变量类型 变量名字 = new Demo09();
Demo09 demo09 = new Demo09();
System.out.println(demo09.age);//0
System.out.println(demo09.name);//null
//类变量static
System.out.println(salary);//2500.0
}
//其他方法
public void add(){
}
}
运行结果如下:
5.3常量
常量:初始化后不能再更改的值!不会变动的值
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被更改。
final 常量名=值;
final double PI = 3.14;
常量名一般用大写字符
public class Demo10 {
//修饰符,不存在先后顺序
static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
5.4变量的命名规范
-
所有变量、方法、类名:见名知意
-
类成员变量:首字母小写和驼峰原则:monthSalary 除第一单词以外,后面的单词首字母大写
-
局部变量:首字母小写和驼峰原则
-
常量:大写字母和下划线:MAX_VALUE
-
类名:首字母大写和驼峰原则:Hn,GoodHn
-
方法名:首字母小写和驼峰原则:run(),runRun()