关键字
1、在java中有着特殊含义、特殊功能的单词
2、取名字的时候不要和关键字重名,但是可以包含关键字 class Myclass
3、还有两个保留关键字 goto const,在java中没有特殊的含义,但是依然不能使用
标识符
1、用来给类、接口、枚举、方法、变量、常量取名字的字符序列
2、组成
1、以英文大小写、数字
4、两个特殊的符号 $ _
5、除英文外的其他字符(中文)(不建议)
3、注意事项
1、不能以数字开头
2、不能和关键字重名
Public myclass _class 可以
class 1class 不可以
命令规则
1、在是一个合法标识符的前提下,给类、包、变量、方法取名字的时候还要遵循一定的原则,这些原则不会被编译器检查,是程序员约定俗成的东西
2、包 全部小写 域名倒着写
ujiuye.com com.ujiuye.demos
3、类 、接口、枚举 所有单词的第一个字母大写,其他字母小写 一般是一个名词 驼峰法
HelloWorld MyClass Dog
4、方法 第一个单词全部小写,从第二个单词开始首字母大写,其他字母小写 一般是动词或者动宾结构
setName queryAllStudent get
5、变量 第一个单词全部小写,从第二个单词开始首字母大写,其他字母小写,一般是一个形容词
myName name i
6、常量 所有单词全部大写 多个单词通过_进行分割
E PI MAX_VALUE
java的书写规范
1、左大括号左边要有空格,右边要有换行和缩进 (tab)
2、右大括号要与本次层的代码对齐
3、符号左右两边要有空格
4、不同的代码块要有换行
常量
1、在程序运行过程中,其值不会发生改变的量就是常量
2、分类
1、字面值常量: 12 12.34
2、符号性常量:只知道常量的名称,而不知道常量的值 public static final int MAX_VALUE = 100;
3、字面值常量
1、整数类型 12 13
2、小数类型 12.34 12.0
3、布尔类型 表示是是非非的东西 true false
4、字符类型 ‘a’ ‘b’ 使用单引号引起来的单个字符
6、字符串类型 使用双引号引起来的字符序列 “张三”
7、空常量 null 表示空
class Demo02_常量 {
public static void main(String[] args) {
//整数常量
System.out.println(10);
System.out.println(-100);
//小数常量
System.out.println(-12.34);
System.out.println(13.0);
//布尔常量
System.out.println(true);
System.out.println(false);
//字符常量 使用单引号引起来的单个字符
System.out.println('q');//q
System.out.println('张');//张 汉字也是单个字符
//System.out.println('ab');//报错误 ab是两个字符
//System.out.println('');//报错 一个字符都没有
System.out.println(' ');//空格和制表符都是单个字符
//字符串常量 使用双引号引起来的字符序列
System.out.println("666");
System.out.println("true");
System.out.println("");
System.out.println("bacdefdjfsdfsdsdfds");
//空常量null
//System.out.println("null");字符串常量
/*
你吃饭了吗 早饭 晚饭 午饭
null char[] 数组可以为null String也可以为null
*/
//System.out.println(null);//报错 引用不明确
}
}
变量
1、在程序运行过程中,其值会发生改变的量
2、定义的格式
数据类型 变量名 = 变量值;
int i = 10;
刘德华 张学友 明星
4、本质:使用不变得变量名,去表示不断变化的数据
5、在内存中,开辟了一段空间,存储不断变化的数据
6、对变量重新赋值
变量名 = 重新要赋的值;
i = 20;
7、变量在内存中的理解
class Demo03_变量 {
public static void main(String[] args) {
//定义一个变量
int i = 10;
System.out.println(i);//10
//对变量重新赋值
i = 20;
System.out.println(i);//20
/*j = 30;报错
System.out.println(j);*/
}
}
练习
1、定义两个整数int a = 10; int b = 20; 将两个变量交换值
class Demo04_变量练习 {
//1、定义两个整数int a = 10; int b = 20; 将两个变量交换值
public static void main(String[] args) {
int a = 10;
int b = 20;
//用第三个变量 int c
int c = a;
a = b;
b = c;
System.out.println(a);
System.out.println(b);
}
}
变量的注意事项
1、变量是有作用域的
作用域就是作用的范围
作用范围就是所在最近的大括号
2、变量必须先声明才能使用
int a = 10; b = 10;
3、变量的声明和赋值可以分离开来
int a; 变量的声明
a = 10; 变量的赋值
4、同一个作用域不能定义相同的变量
int a
int a
5、一行可以定义多个变量
int a, b = 20, c,d = 40; 不建议这种方式定义多个变量
int a;
int b = 20;
int c ;
int d = 40;
class Demo05_变量的作用域 {
public static void main(String[] args) {
int a = 10;
int b;
//System.out.println(b); 报错 b没有初始化
b = 20;
System.out.println(b);
int c = 20;
//int c = 30; 变量不可以重复定义
System.out.println(c);
int d = 100, e = 200,f;
System.out.println(d);
System.out.println(e);
}
public void test() {
//a是未定义的
//System.out.println(a);
}
}
java的数据类型
1、java是强类型语言,在声明变量的时候需要显式的说明数据类型,jvm才知道给变量分配多大的内存空间
2、分类
1、基本数据类型:四类八种,是jdk已经提前定义好的,基本类型不能增加也不能减少,描述的就是数值本身
int a = 10
2、引用数据类型:描述不是数值本身而是一个地址,引用数据类型是多个基本数据类型组成而成,描述的地址
3、基本数据类型 四类八种
整数类型
byte 1个字节 8bit 1bit代表一个开关(两种可能 开和关) 2的8次方 -128-----127
short 2个字节 2的16次方 - 215-------215-1
int 4个字节 2的32次方 -2^31 ----------2^31 - 1
long 8个字节 2的64次方 -263---------231 - 1
小数类型 IEEE754标准
float 4个字节 > long
double 8个字节 > float
布尔类型
boolean 未知 true false
字符类型
char 2个字节 =short
class Demo06_基本数据类型 {
public static void main(String[] args) {
//整数
byte b = 10;
short s = 20;
int i = 100;
long lo = 10000;
System.out.println(b);
System.out.println(s);
System.out.println(i);
System.out.println(lo);
//小数类型
//float f = 12.34;
double d = 12.0;
//System.out.println(f);
System.out.println(d);
//字符类型
char c = 'a';
System.out.println(c);
//布尔类型
boolean bo = true;
boolean bo1 = false;
System.out.println(bo);
System.out.println(bo1);
//boolean bo2 = "true"; 字符串类型不能赋值给boolean类型
}
}
常量的默认类型
1、整数的常量默认类型是int类型,随便写出一个整数常量要在int的表示范围之内
int的表示范围:- 2147483648------2147483647
如果超出了int的表示范围,可以使用long类型,在整数常量后面加上一个大写的L
2147483648L
2、小数的常量默认类型是double类型,随便写出一个小数常量要在double的表示范围之内
如果想要表示float类型的常量,在常量后面加上大写的F
float f = 12.34F;
class Demo07_常量的默认类型 {
public static void main(String[] args) {
//整数默认是int
System.out.println(2147483647);
//long类型的常量
System.out.println(2147483648L);
//小数的默认类型是double
System.out.println(12.34);
//float类型的常量
float f = 12.34F;
System.out.println(f);
}
}
类型之隐式转换
1、在java中是存在计算的,两个类型进行计算,结果是大的类型
byte < short = char < int < long < float < double char不参与比较
2、int和int以下的类型进行计算结果是int类型
byte和byte进行计算,结果是int类型
3、int和int以上的类型进行计算,结果是大的类型
byte和long类型进行计算结果是long类型
class Demo08_隐式转换 {
public static void main(String[] args) {
byte b1 = 10;
byte b2 = 20;
// byte和byte相加结果是int类型
int i = b1 + b2;
System.out.println(i);
long l1 = 100;
long l2 = b1 + l1;
System.out.println(l2);
}
}
类型之强制转换
1、小类型转成大类型,可以直接进行转换
long l = 100;
2、把大类型的数据转成小类型的数据会出现精度丢失,编译器不会直接进行转化,可以通过强制
3、格式
数据类型 变量 = (要转换成的类型)要转换的数据;
long l = 100;
int i = l; 大类型转成小类型必须要进行强转
4、强转的过程中会出现跟生活中不符合的情况
class Demo09_强制转换 {
public static void main(String[] args) {
long l1 = 100;
System.out.println(l1);
long l2 = 200;
//int i = l2; 不让直接转换,需要强转
int i = (int)l2;
System.out.println(i);
int i1 = 130;
byte b = (byte)i1;
System.out.println(b);//-126
/*
二进制在计算机存储的 第一位是符号位 0 正数 1负数
计算机是都以补码存在的
原码 反码 补码
正数 原码 = 反码 = 补码
负数 反码 = 原码的符号位不变,其他位取反
补码 = 反码 + 1
00000000 000000000 00000000 10000010
补码:10000010
反码:10000001
原码:11111110 - (2 + 4 + 8 + 16 + 32 + 64) = -126
*/
}
}
字符串类型
1、类型名称String
2、使用双引号引起来的字符序列,是一个引用类型
3、+代表字符串的拼接
4、一个字符串去拼接其他类型结果还是一个字符串
“张三” + 1 = “张三1”
class Demo10_字符串的拼接 {
public static void main(String[] args) {
String str = "张三";
System.out.println(str + "1");
System.out.println("6" + 6);//66
System.out.println("6 + 6 = " + 6 + 6);//6 + 6 = 66
System.out.println(6 + 6 + " = 6 + 6");//12 = 6 + 6
System.out.println("6 + 6 = " + (6 + 6));//6 + 6 = 12
int a = 6;
int b = 6;
//12a = 6,b = 612
System.out.println(a + b + "a = " + a + ", b = " + b + (a + b));
}
}
java中的运算符
1、分类
1、算术运算符
2、赋值运算符
3、比较运算符
4、逻辑运算符
5、三元运算符
算术运算符
1、用来计算的运算符
2、+ - * / %
3、+
表示整数
表示字符串的拼接
表示加法运算
4、/
一个整数除以一个整数结果还是一个整数
只要有一个是小数,结果就是小数 18 / 4 = 4
5、% 取余运算符 取模运算符
1、求余数
2、判断奇偶性
3、判断是否被一个数整数
class Demo11_算术运算符 {
public static void main(String[] args) {
//除法
System.out.println(10 / 4);//2
System.out.println(10.0 / 4);//2.5
// %取余
System.out.println(10 % 4);//2
System.out.println(91 % 7);//0
}
}
三元运算符
1、可以操作三个表达式的运算符叫做三元运算符
2、格式
表达式1 ? 表达式2 :表达式3
3、执行流程
表达式1必须是boolean类型,返回的结果要么是true,要么是false
表达式2和表达式3可以是任意类型
如果是true的话,表达式2就作为整个三元表达式的结果
如果是false的话,表达式3就作为整个三元表达式的结果
class Demo12_三元表达式 {
public static void main(String[] args) {
System.out.println(false ? "张三" : "李四");
// == 比较两个数据是否相等,返回是boolean类型
System.out.println(91 % 7 == 0 ? "王五" : "赵六");
}
}