java
1、Hello Worid示例:
public class hello {
//输入psvm 输出一个main方法
public static void main(String[] args) {
//输入sopt 打印字符串hello wroid
System.out.print("hello wroid");//快捷命令sout
}//快捷命令psvm
}
2、注释:
//单行注释:只能注释一段文字
/*
多行注释:
可以注释一段文字
*/
//文档注释:/** */
3、标识符:
1、类名、变量名、方法名都被称为标识符
2、所有标识符只能以字母(A-Z或a-z)、美元符($)、或者下划线(_)开始
3、标识符是大小写敏感的
4、什么是字节:
-
位(bit):计算机内部储存最小单位,11001100是一个八位二进制数。
-
字节(byte):计算机数据处理的基本单位,习惯上用大写B表示。
-
1B(byte) = 8bit(位)
-
字符:指计算机中使用的字母、数字、字和符号
- 1bit表示1位
- 1Byte表示一个字节1B = 8b
- 1024B = 1KB
5、数据类型:
1、强类型语言:
- 要求变量的使用要严格规定,所有变量必须先定义才能使用
- 特点:安全性高、速度慢
2、弱类型语言:
- 要求变量的使用要严格规定,所有变量必须先定义才能使用
3、数据类型分为两类
-
基本类型(primitive type)
-
引用类型(reference type)
数据类型 变量名 = 值;可以用逗号隔开声明多个同类变量
//八大基本数据类型
//整数
int num1 = 10;//最常用 占4个字节范围:-9223372036854775808-9223372036854775807
byte num2 = 20;//占1个字节范围:-128-127
short num3 =30;
long num4 = 30L;//Long类型要在数字后面加L
//小数:浮点数
float num5 = 50.1F;//float类型要在数字后面加F
double num6 = 3.1415926;
//字符类型
char name = 'A';
//字符串,String不是关键词,是一个类
String namea = "十一点";
//布尔值:是非
boolean flag = true;
//boolean flag = false;
整数拓展
public static void main(String[] args) {
// 整数拓展 : 进制 二进制0b 八进制0 十进制 十六进制0x
int i = 10;
int i2 = 010;//八进制0
int i3 = 0x10;//十六进制0x
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("----------------------------------------------------");
//浮点数拓展
float f = 0.1f; //0.1
double d = 1.0/10;//0.1
System.out.println(f==d);//false
float d1 = 2435342543543534534255f;
float d2 = d1+1;
System.out.println(d1==d2);//true
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全使用浮点数进行比较
//最好完全使用浮点数进行比较
//最好完全使用浮点数进行比较
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字节 0-65536
//U0000 UFFFF
char c3 = '\u0061';
System.out.println(c3);
System.out.println("----------------------------------------------------");
//转义字符
// \t 制表符
// \n 换行
// .......等其他转义符
System.out.println("Hello\tWroid");
System.out.println("Hello\nWroid");
}
结果:
10
8
16
----------------------------------------------------
false
true
----------------------------------------------------
A
65
中
20013
a
----------------------------------------------------
Hello Wroid
Hello
Wroid
进程已结束,退出代码为 0
6、类型转换
-
由于java是强类型语言,所以要进行有些运算的时候,需要用类型转换
低 -------------------------------------------------------------------------------------> 高
byte,short,char ---> int --->long ---> float --->double
-
运算中,不同类型的数据先转化为同一种类型,然后再运算
-
强制转换
-
自动转换
public static void main(String[] args) {
int i = 128;
byte b = (byte) i;//强制类型转换,内存溢出
double c = i;//自动类型转换
//强制类型转换 (类型)变量名 高------低
//自动类型转换 低-------高
System.out.println(i);
System.out.println(b);
System.out.println(c);
/*注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相关的类型
3.在把高容量转换到低容量的时候,强制转换
4.转换过程中可能存在内存溢出,或者精度不准的问题
*/
//精度不准问题
System.out.println("1、------------------------------------------------------");
System.out.println((int)67.5);
System.out.println((int)10.4f);
//内存溢出问题
System.out.println("2、------------------------------------------------------");
//操作比较大的数字时,要注意溢出问题
//jdk7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total = money*years;//-1474836480,计算时溢出了
System.out.println(total);
long total2 = money*years;//默认类型是int,转换前已经出现问题了
System.out.println(total2);
long total3 = money*((long)years);//先把一个数转换成long
System.out.println(total3);
//字符与数字转换
System.out.println("3、------------------------------------------------------");
char d = 'a';
int e = d+1;
System.out.println(e);//98
System.out.println((char)e);//b
}
结果:
128
-128
128.0
1、------------------------------------------------------
67
10
2、------------------------------------------------------
-1474836480
-1474836480
20000000000
3、------------------------------------------------------
98
b
进程已结束,退出代码为 0
7、变量、常量、作用域
变量
-
变量就是可以变化的量
-
java中每个变量都必须声明其类型
-
java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域
数据类型 变量名 = 值;可以用逗号隔开声明多个同类变量
作用域
- 类变量
- 实例变量
- 局部变量
public class demo04 {
///类变量 static
static double salary = 2500;
//属性:变量
//实例变量:从属于对象;如果不自行初始化,这个类型的默认值 0 0.0
//布尔值:默认是false
//除了基本类型,其余的默认值都是null
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量;必须声明和初始化值
int i = 10;
System.out.println(i);
//变量类型(可自定义) 变量名字 = new demo04();
demo04 demo04 = new demo04();
System.out.println(demo04.age);
System.out.println(demo04.name);
//类变量
System.out.println(salary);
}
//其他方法
/*public viod add(){
System.out.println();
}*/
}
常量
- 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
- 常量可以理解为一个特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
final 常量名 = 值;
final double PI = 3.14
- 常量名一般使用大写字符
//修饰符,不存在先后顺序
static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
变量的命名规范
- 所有变量、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则
8、运算符
-
java支持的运算符: 优先级()
-
算术运算符:+、-、*、/、%、++、--
-
赋值运算符:=
-
关系运算符:>、<、<=、==、!=instanceof
-
逻辑运算符:&&、||、!
-
位运算符:&、|、^、~、>>、<<、>>>(了解!!!)
-
条件运算符:?、:
-
扩展赋值运算符:+=、-=、*=、/=
-
自增自减运算符、初识Math类
public class demo03 {
public static void main(String[] args) {
//++ -- 自增,自减 一元运算符
int a = 3;
int b = a++;//执行完这行代码后,先给b赋值,再自增
//a = a + 1
System.out.println(a);
//a = a + 1;
int c = ++a;//执行完这行代码后,先自增,再给b赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算2^3 2*2*2 = 8 很多运算,我们会使用一些工具类来操作
double pow = Math.pow(3,2);
System.out.println(pow);
}
}
逻辑运算符:
public static void main(String[] args) {
// 与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b:"+(b&&a));//与运算:两个变量都为真,结果才为true
System.out.println("a || b: "+(b||a));//或运算:两个变量有一个为真,则结果为true
System.out.println("!(a && b):"+!(b&&a));//如果是真,则变为假,如果是假则变为真
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
}
位运算符:
public static void main(String[] args) {
/*
A = 1010 0110
B = 0100 1011
----------------------------
A&B = 0000 0010 //相同为1
A|B = 1110 1111 //有1则1
A^B = 1110 1101 //相同为0
~B = 1011 0100 //取反
2*8 = 16 2*2*2*2
效率极高
<< *2
>> /2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<5);
}
条件运算符:
//三元运算符
public static void main(String[] args) {
//x ? y : z
//如果x == true,则结果为y,否则结果为z
int score = 60;
String type = score<60?"不及格":"及格";//必须掌握
//if
System.out.println(type);
if(score< 60){
System.out.println("不及格");
}
else {
System.out.println("及格");
}
扩展赋值运算符:
public class demo06 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b; //a=a+b
a-=b;//a=a-b
System.out.println(a);
//字符串连接符 + , string
System.out.println(""+a+b);
System.out.println(a+b+"");
}
}

浙公网安备 33010602011771号