1.软件:系统软件 vs 应用软件
2.人与计算机做交互:使用计算机语言
图形化界面 vs 命令行方式 dir md(make directory) rd(remove directory) cd(change directory) cd ..cd / del exit
3.语言的分类:
第一代:机器语言
第二代:汇编语言
第三代:高级语言(面向过程 vs 面向对象)
4.java语言的特性:面向对象性;健壮性;跨平台性(write once ,run anywhere )---JVM
5.安装JDK及配置环境变量
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar).不论什么Java应用服务器实质都是内置了某个版本的JDK.因此掌握 JDK是学好Java的第一步.最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等.其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多.而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多.但不管怎么说,我们还是需要先把Sun JDK掌握好.
1)安装JDK
2)设置java环境变量
添加
D:\Program Files\Java\jdk1.8.0_45\bin
JDK 》 JRE 》 JVM
6.如何编写运行第一个java程序
编写--编译----运行
每一个java文件都是以.java结尾的,称为源文件helloWorld.java。java程序就存在于这个源文件中
public class HelloWorld{
//程序的主方法,是程序的入口
public static void main(String []srt){
System.out.println("Hello World");
}
}
注意点:
java源文件以“java”为扩展名。类是java中的基本组成单元,比如本类中的HelloWorld。
一个源文件中最多只能有一个public类,其它的权限访问修饰的类不限,如果源文件中包含一个public类,则文件名必须按该类名命名。
java应用程序的执行入口是main()方法,它有固定的书写格式:public static void main(String []str){...}
java语言严格区分大小写:变量的名字,关键字,都是区分大小写的
1.变量
常量:固定量(值),不能改变
变量:一个可以改变的量(值)
1.常量分类
整数常量 : 所有整数(12,23,34)
小数常量 : 所有小数(1.2,2.3,4.56)
字符常量 : 用单引号括起来(‘a’,’A’,’人’)
字符串常量 : 用双引号括起来(“数字”,”A”,””)
布尔常量 : true,false
空常量 : null
2.基本数据类型
1).整数类型:在程序中使用int关键字来作为默认表示。
byte 字节类型:使用byte关键字表示,在内存中占用一个字节空间,范围:-128-127
short 短整形: 使用short关键字表示,在内存中占用两个字节空间,范围:-2^15-2^15-1
int整形 :使用int关键字表示,在内存中占用四个字节空间,范围:-2^31-2^31-1
long长整型:使用long关键字表示,在内存中占用八个字节空间,范围:-2^63-2^63-1
(如果整数常量比较大时,需要在后面添加一个L或者l)
2)小数类型(浮点类型):程序中使用double关键字作为默认浮点数
float单精度浮点类型:使用float关键字表示,在内存中占用四个字节空间 (在赋值
小数时,数字后面加上F或者f)范围:-3.403E38-3.403E38
double双精度浮点类型: 使用double关键字表示,在内存中占用八个字节空间 范围:-1.798E308-1.798E308
3)字符类型:
使用关键字char来表示,在内存中占用两个字节,范围:0-65535
4)布尔类型:
使用关键字boolean来表示,在内存中占用一个字节空间,范围:true、false
数据类型 | 关键字 | 占用空间 | 范围 |
整数类型 | byte | 1 | -128~127 |
short | 2 | -2^15~2^15-1 | |
int(整数默认型) | 4 | -2^31~2^31-1 | |
long | 8 | -2^63~2^63-1 | |
小数类型(浮点型) | float(单精度) | 4 | -3.403E38~3.403E38 |
double(双精度) 浮点数默认型 | 8 | -1.798E308~1.798E308 | |
字符类型型 | char | 2 | 0~65535 |
布尔类型型 | boolean | 1 | True,false |
变量定义格式:
数据类型 字符串(名字) = 常量值
变量在定义或者声明后,要初始化变量值。
在对变量赋值时,必须保证所赋予的变量的值,属于变量类型的范围。
数据类型的转换
1.自动类型转换(自动类型提升)
必须符合大的数值(数据类型)包含小的数值(数据类型)
默认转换次序:byte,short,char-- int -- long -- float -- double同时,int可直接转换成float、double型,而float或者double不能转换成int型。
2.强制类型转换(有可能造成数据精度丢失)
格式: 小的数据类型= (小的数据类型)大的数据类型
如:double b =10.35;
int a= (int)b
数据转换特殊例子:
public class BasicType {
public static void main(String[] str) {
byte a = 10;
byte b = 20;
byte c = a + b;
System.out.println(c);
}
}
此程序在编译后报错,因为,JVM在对待变量操作时由于变量的不确定性,会将变量当作程序中的默认类型(即将a,b默认为int型),所以再将运算的结果(int型)赋值
给byte型的c时,会提示可能损失精度。
使用强制类型转换
public class BasicType {
public static void main(String[] str) {
byte a = 10;
byte b = 20;
byte c = (byte)(a + b);
System.out.println(c);
}
}
public class TestMain {
public static void main(String[] str) {
int i = 10;
float f = 10.2f;
double d = f;//自动类型转换
System.out.println(d);
i = (int)f;//强制类型转换
System.out.println(i);
}
}
2.算术运算符
运算符的优先级(从高到低)
优先级 | 描述 | 运算符 |
1 | 括号 | ()、[] |
2 | 正负号 | +、- |
3 | 自增自减,非 | ++、--、! |
4 | 乘除,取余 | *、/、% |
5 | 加减 | +、- |
6 | 移位运算 | <<、>>、>>> |
7 | 大小关系 | >、>=、<、<= |
8 | 相等关系 | ==、!= |
9 | 按位与 | & |
10 | 按位异或 | ^ |
11 | 按位或 | | |
12 | 逻辑与 | && |
13 | 逻辑或 | || |
14 | 条件运算 | ?: |
15 | 赋值运算 | =、+=、-=、*=、/=、%= |
16 | 位赋值运算 | &=、|=、<<=、>>=、>>>= |
如果在程序中,要改变运算顺序,可以使用()。
1.算术运算符
2元运算符:+ - * \ %(取模,余数)
运算顺序:相同运算规则中,从左边开始运算,从右边向左边结合,多个运算符号
中,先乘除,后加减,()表示先运算
注:在使用+运算符号时,如果和字符串一起使用加法运算时,此时+不是加法运算
符,而是字符串连接符。
1元运算符:++(自增+1)、--(自减-1)、
自增运算符在变量的后面:先把变量赋值给一个临时变量,再对变量进行+1运算,
最后把临时变量赋给接收的变量或直接输出(可选)。
自增运算符号在变量前面:先对变量进行+1运算,再把运算的结果赋值给变量。
2.赋值运算符 :=,+=、-=、*=、\=、%=
A+=10 等价于 A= A+10
使用复合赋值运算符,可以避免在编译时丢失精度的错误。好处:可以自动类型提升
转换
3.比较运算符:< 、> <=、>=、==(相等,不要和赋值混淆)、!=(不等)
使用比较运算符,必须有一个结果。而这个结果是boolean(true 、false)
4.逻辑运算符
5.位移运算符
算术右移 (>>): 低位溢出,符号位不变,并用符号位补溢出位
如 -1 >> 2
-1源码 1000 0000 0000 0000 0000 0000 0000 0001
-1的反码 1111 1111 1111 1111 1111 1111 1111 1110
-1的补码(反码+1) 1111 1111 1111 1111 1111 1111 1111 1111 故-1再怎么右移还是-1
正数的补码还是自己
算术左移(<<): 符号位不变,低位补零
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。