从甲骨文官网下载1.8版本的JDK
--执行安装程序(全部默认下一步即可)
--默认安装在C:Program FilesJava
会有JDK和JRE的安装
JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。
JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。
简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。
环境配置(针对window10)1、打开高级系统设置
2、打开环境变量
3、在系统变量中新建一个JAVA_HOME
4、 在path中加一个JDK的bin路径
二、Java文件的创建和运行
1、新建一个Java的文件
2、打开dox命令行(可以快捷键win+R,输入cmd)
3、将当前路径转换java文件所在的路径
4、javac编译所编写的java文件生成class(java文件有多少类就有多少个class)
5、java运行class文件(java+类名)
6、创建java的帮助文档
三、Java的注释
注释可以提高代码的可读性(注释很重要,不然到时自己看自己的也是一头雾水)
单行注释 // 多行注释 文档注释 /** /
文档注释常用的注释有@author 作者 @version 源文件的版本 @param 方法参数的说明信息
@return 返回值的说明信息 @see 参考信息 @depreacte 不推荐使用的方法 @throw 抛出异常
@exception 抛出异常 注:throw表示声明类型 exception抛出这个动作
javadoc -d api生成的存放目录 Java源文件
javadoc -d api生成的存放目录 -author -version Java源文件
注:如果属性或者方法不是public修饰的,则需要在命令中加上-private参数
四、Java命名方法标识符一般由数字、字母和下划线组成
Java命名方法采用驼峰式一定要对大小写敏感,不能数字开头、不能使用其他特殊字符、不能包含空格、不能含有关键字
类名 首字符大写、每个单词首字母大写 (HelloWorld)
方法名 首字符小写、每个单词首字母大写 (helloWorld)
变量名 和方法名一致 (helloWorld)
常量 全大写,每个单词使用_分隔 (HELLO_WORLD)
五、Java的基本数据类型 整数型一个字节占8位,由于最高位为符号位所以正数的范围是2^(n-1),而符号位也是可读的所以负数的范围是2^(n-1)-1
tpye 1个字节 8位 2^7 最高位为符号位 -128~+127
short 2个字节 16位 2^15 最高位为符号位 -32768~+32767
int 4个字节 32位 2^31 最高位为符号位 -21474836348~+2147483647(整数默认int)
long 8个字节 64位 2^63 同上(可以123L表示)
浮点型
float 单精度浮点型 4个字节 32位 1位符号位 8位指数位 23位尾数位(可以123.12F表示)
double 双精度浮点型 8个字节 64位 1位符号位 11位指数位 52位尾数位(小数默认为doulbe)
浮点型可以用科学计数法描述 例子:1.99999*10^3 == 1.99999e3
单字符型char 单字符型 16个字节 可以存放数字、字母、符号和汉字,数字、字母、符号按照ASCII码存储
汉字则是按照UTF-8存储(uxxxx)注:String无法转换为char类型
布尔型boolean 布尔类型 16个字节 有true和flase两个值,一般用于条件的判断,循环语句的控制流程
六、数据类型的转换数据类型容量大小的顺序(从左到右依次变大)
type->short->int->long->float->double
char->int->long->float->double
数据类型转换按照范围小到大的顺序来转换,否则会对数据造成亏损,编译报错。要进行强制转换
强制转化的格式 小数据=(数据类型)大数据;
小数据= (数据类型) 数据的表达式
在表示式中自动类型提升
例子:其中a+b的数据类型是int类型,再赋值给c
int a; short b; int c; c=a+b;七、进制的转换
学习进制的转换有助于理解位运算
机器数
一个数在计算机中的表现形式叫做机器数,这个数有正负之分,在计算机中用一个数的最高位号位)用来表示它的正负,其中表示正数,1表示负数
原码:最高位是符号位 整数0111 1111(127),负数1111 1111(-128)
反码:正数与原码一致 负数是原码除符号位以外取反。0111 1111(127)1000 0000 (-128)
补码:正数一致,负数是原码除符号位以外都取反+1。 1000 0000 (127)1001 0001(-128)
例子:
求-1的二进制,假设位数是8位
-1 = 0-1= 1 0000 0000
- 0000 0001
=1111 1111【补码】
二进制转换十进制(每个位对应的值)
1 1 1 1 1 1 1 1
128+64+32+16+8+4+2+1=377
十进制转换二进制
可以用8421猜,数值太大用计算机。
二进制转换八进制
每三位为一组,
011 111 111
2 7 7
八进制转换二进制 逆过程
二进制转换十六进制
每四位为一组
1111 1111
f f
十六进制转换二进制 逆过程
八、算术运算符
算术运算符有+ (加) -(减) *(乘) /(除) %(取余)
其中加法还有一个字符串拼接的作用
表达式的顺序从左到右,其中优先级* / %高于+ -
特殊例子
8/0.2 从double转换到int可能会有损失
//int res1 = 8/0; //java.lang.ArithmeticException: / by zero 0不能作为被除数
扩展运算
i=i+5 可以用 i+=5表示(也可以用加减乘除取余表示)
i+=5表达式有强制转换的功能 等价于 (小数据)i=(小数据)(i+5)
经典笔试题: 为什么i+=5;可以 而i = i+5;有错误?
short i=3; i+=5;//输出8 //i=i+5//编译报错,int转short可能造成数据损失 System.out.println(i);
九、位运算
按位与运算
0000 0111
0000 0101
0000 0101 int res3 = 7&5; //按位与 全真则为真 有假则为假 5
按位或运算
0000 0111
0000 0101
0000 0111 int res4 = 7|5; //按位或 有真则为真 全假则为假 7
取反 打印的时候,计算机存的是补码,但我们打印出来的是十进制,我们得把补码转成原码,然后把原码转成十进制数,得到的结果才和打印出来的十进制数一致
0000 0101
1111 1010 = -1-4-1=-6 int res5 = ~5; //取反[将所有进行取反,包含符号位]
按位异或运算
0000 0111
0000 0101
0000 0010 int res6 = 7^5; //按位异或 不同则为真 相同则为假 2
左移
左移一位 低位补0
0000 0101
0000 1010 int res7 = 5 << 1;//10
右移
有符号右移一位 高位补符号位
0000 0101
0000 0010 int res8 = 5 >> 1;//2
无符号右移一位 高位补0
1111 1111 1111 1111 1111 1111 1111 1011
0111 1111 1111 1111 1111 1111 1111 1101



