JAVA学习-01-韩顺平老师
01-JAVA 概述
- 基本概念
- jdk 由 jre 和类工具库组成
- jre 由 jvm(虚拟机)和标准库组成
- jdk 安装
- 官网下载jdk安装
- 配置环境变量
- 配置环境变量的作用:是为了能够在任意的地方使用 java javac等
- JAVA_HOME 变量值为地址
- 配置 path 路径
- java常用转义
- ‘\t’ 间隔符
- ‘\n’ 换行符
- ‘\’ 表示一个 ‘\’
- java注释
- // 单行注释
- /**/ 多行注释
- /** */ 文档注释
- 单行和多行注释 给程序员看的
- 文档注释 是对文档的注释
- java代码规范
- 进行运算的时候前后 用空格隔开
- “=” 前后 用空格隔开
- 推荐的行尾风格代码如下:
public class Double { public static void main(String[] args) { double a = 1.3; double b = 1.3; System.out.println(a==b); System.out.println(a); System.out.println(b); } }
- DOS命令
- md 创建文件
- rd 删除文件
- cd 切换路径
- dir 当前文件夹下的文件
- d: 切换盘
- 相对路径和绝对路径
- 相对路径是相对于本文件夹的路径
- 含有 ./ 或是 …/ 这样的路径
- 绝对路径是从盘开始一直到文件的所在路径
- D:\java\java1\1.txt
- 相对路径是相对于本文件夹的路径
02-变量
- 数据类型
- 基本数据类型
- int 整型
- float double 单精度浮点型和双精度浮点型
- boolean 布尔类型 true false
- char 字符类型
- String 字符串类型
- 应用数据类型
- 类(class)
- 接口(interface)
- 数组([])
- 基本数据类型
- 自动类型转换
- 默认从低精度向高精度转换
- 例如 int -> double
- 默认从低精度向高精度转换
- 加号使用
- 任何数和字符串相加都得字符串(字符串的拼接)
- 字符类型与数字相加得到默认是数字
public class Add{ public static void main(String[] args) { //加号的使用 //1.加号两边出现一个字符串,则结果为字符串拼接 System.out.println("100"+1); //2.两个数相加 System.out.println(100+1); // 3.char类型 实质上就是一个字符串,在相加的时候是ASCII码对应的数字相加 System.out.println((int)'a'+1); } }
- 浮点数使用
- 浮点数在做除法的时候无法获得准确的值,只能是近似值
- 判断两个浮点数是否相等可以使用差值是否小于一个很小的数
public class Char{ public static void main(String[] args) { double num1 = 2.7; // 一个浮点数除以一个整数的时候,会出现近似小数的情况 double num2 = 8.1/3; System.out.println(num1);//2.7 System.out.println(num2);//2.699997 // 所以可以根据两个数的差值小于某一很小的数时,我们认为它相等 //根据差值来判断是否相等 if(num2 - num1 < 0.0001){ System.out.println("两个数差值很小,我们认为它们相等"); } } }
- JAVA API 文档
- 文档组成
- jdk包含有很多个包
- 每个包 包含很多接口、类、异常
- 类下面包含很多的字段、构造器、成员方法(方法)
- 文档组成
- 常见编码类型
- ASCII 码
- ISO-8859-1
- GBK 中文编码
- UTF-8
- 类型转换
- 自动类型转换
- 低精度可以自动想高精度转换
- 例如 int类型 和 double类型 相加得到的是 double类型
- 低精度可以自动想高精度转换
- 强制类型转化
// - 高精度 -> 低精度 但是低精度的大小必须要能够承受这个值,不然会出现负值 int a = (int)2.3; // a=2.3 // 基本数据类型转化为String int b = 1; Boolean c = true; float d = 1.1f; double e = 1.1; // 在后面加一个空字符来转换成字符串型 String b = b + ""; String c = c + ""; String e = e + ""; String str = b + "" + c + "" + a + ""; // 2.31true // String -> 基本数据类型(oop)方法 int num1 = Integer.parseInt(b); // b=1 (整型) double num2 = Double.parseDouble(e); // e = 1.1 (double型) float num2 = Float.parseFloat(d); // e = 1.1 (double型)
- 自动类型转换
- 注意事项:
- str a = “123” 字符串可以转换为数字 “hello” 字符串不可能转换成 int 会出现异常,程序将终止
String str = "123"; int n = (int)str; //可以转换为int类型 String str1 = "hello" int n1 = (int)str1 // 抛出异常,无法转换
03-运算符
- 基本运算符
- ‘+’ 加
- ‘-’ 减
- ‘*’ 乘
- ‘/’ 除
- ‘%’ 取模
- ‘++’ 自增
- ++a 先加加后取值
- a++ 先取值后加加
- ‘–’ 自减
- 简单示例题目
public class ArithmeticOpratorExercise{ public static void main(String[] args) { // 1.计算59天有多少个星期零几天 int days = 59; int weeks = 59 / 7; int day = 59 % 7; System.out.println(days + "天一共有" + weeks + "星期" + day + "天"); // 华氏温度转换为摄氏温度 5/9(华氏温度-100) double huashi = 320.3; double sheshi = 5/(9/(huashi-100)); System.out.println(huashi + "转换为摄氏温度是:"+ sheshi + "度"); } }
- 关系运算符
- 运算符
- >
- <
- >=
- <=
- ==
- 运算结果是 true 或是 false
- 运算符
- 逻辑运算符
- 用于链接多个条件表达式,最终结构也是boolean
- 运算符 短路与 和 与 最终结果一样
- a&b 与
- a|b 或
- a&&b 短路与 效率更高
- 如果第一个为真,则后面的疚不会判断
- a||b 短路或
- 如果第一个为真,则第二个不会判断
- ! 取反
- a^b 逻辑异或 当两个不同的时候为真,相同为真
- 赋值运算符
- 基本运算符
- =
- 复合运算符
- +=
- -=
- /=
- *=
- %=
int a = 3; a += 3; // a = 6
- 基本运算符
- 三元运算符
- 条件表达式?表达式1:表达式2;
- 运算规则
- 如果条件表达式为真,结果为表达式1
- 如果条件表达式为假,结果为表达式2
- 注意事项:
- 表达式1和表达式2要为可以赋值给接受变量的类型(可以自动转换,或者强转)
- 不能把 double类型 赋值给 int类型
- 三元运算符可以转换为if-else语句
- 表达式1和表达式2要为可以赋值给接受变量的类型(可以自动转换,或者强转)
- 运算符的优先级
- 运算符(从上到下依次减小,单目运算符从右向左)
- . () {} , ;
- ++ – ~ !(data type)
-
- / %
-
-
- << >> >>> 位移
- < > <= >= instanceof
- == !=
- &
- ^
- |
- &&
- ||
- ? :
- 运算符(从上到下依次减小,单目运算符从右向左)
- java键盘输入
- 1.引入Scanner所在的包
- 2.创建一个 Scanner 对象
- 3.使用对象中的方法来接受键盘输入
import java.util.Scanner;//表示把java.util 包下面的Scanner类导入 public class Input{ public static void main(String[] args) { // 创建一个对象 new Scanner myScanner = new Scanner(System.in); System.out.println("请输入你的姓名:"); // 输入一个字符串 String name = myScanner.next(); System.out.println("请输入你的年龄"); int age = myScanner.nextInt(); System.out.println("请输入你的薪水"); double sal = myScanner.nextDouble(); System.out.println("姓名" + name + "\t年龄" + age + "\t薪水" + sal); } }
- 四种进制
- 四大进制
- 2进制
- 8进制
- 10进制
- 16进制
- 10进制转其他进制
- 用进制数作为除数取余数连接连续除法所得最后结构(从下往上)
- 2 8 16 -> 10
- 每位数字乘以进制的次方(次方根据该位后所含有的位数)
- 2->8 2->16
- 2->8 每三位转换成一个8进制位
- 2->16 每四位转换成一个16进制位
- 8->2 16->2
- 8->2 一位转换为3个二进制位
- 16->2 一位转换成4个二进制位
- 四大进制
- 源码、反码、补码
- 正数的源码、反码、补码都是一样的
- 反码 除符号位以外其他位取反
- 补码 补码 = 反码 + 1 反码 = 补码 + 1
- 最终获得的结构一定要转换成源码才能计算出结果