1. Java 基础
常见Dos命令
dir:列出当前目录下的文件以及文件夹
md: 创建目录
rd:删除目录
cd:进入指定目录
cd..:退回到上一级目录
cd\:退回到根目录
del:删除文件
exit:退出dos命令行
Java 语言概述
特性:强面向对象,分布式,健壮(强类型机制、异常处理、垃圾的自动回收机制)、安全的、体系结构中立的、解释型的(先编译后运行)、支持多线程的
Java技术体系平台:
Java SE:标准版
Java EE:企业版
Java ME
Java Card
Java 语言运行机制及运行过程
Java 语言的特点:面向对象(封装、继承、多态)、健壮完善、跨平台 JVM(Java虚拟机)
Java两种核心机制:
JVM(Java 虚拟机):虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存和寄存器。
GC (垃圾收集机制):
同时使用多个JDK的话,使用压缩版的JDK
什么是 JDK、JRE
JDK:Java 开发工具包
JRE:Java 运行环境
JDK > JRE > JVM
Java 程序
java 源文件以 .java
作为扩展名
注释
单行注释 //
多行注释 / /
文档注释 / /
2. Java基本语法
Java 关键词和保留字
标识符:对各种变量、方法和类等要素命名时使用的字符序列称为标识符
凡是自己可以起名字的地方
命名规范:
包名:多单词组成时所有字母小写 xxyyzz
类名,接口名:多单词组成时,所有单词的首字母大写 XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词的首字母小写,第二个单词开始,每个单词的首字母大写 xxxYyyZzz
常量名:所有字母都大写,多单词时每个单词之间用下划线连接 XXX_YYY_ZZZ
Java中的变量
定义:数据类型 变量名 = 变量的值 eg:int i = 1;
概念:内存中的一个存储区域
该区域有自己的名称(变量名)和类型(数据类型)
Java 中每个变量必须先声明,后使用
该区域的数据可以在同一类型范围内不断变化
注意:变量的作用域,一对{}之间有效; 初始化值
变量是通过使用变量名来访问这块区域的
变量的分类:按数据类型
基本数据类型转换:
自动类型转换:容量小的类型自动转换为容量大的类型
- 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的数据类型,然后再进行计算
- char 类型在进行数学运算时,转换为相应的ASCII值,进行计算
- 当把任何基本类型的值和字符串进行连接运算时(+),基本类型的值将自动转换为字符串类型
- 当有一系列的
+
运算时,如果某个部分其中含有字符串,那么这个字符串前边挨着的+
开始一直往后都是要按照字符串拼接去看
- 当有一系列的
强制类型转换
加强制转换符,但可能造成精度降低或溢出
通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换为基本类型:
String a = ‘43’; int i = Integer.parseInt(a);
boolean 无法转换成其他类型
运算符:特殊符号,用以表示数据的运算、赋值和比较
算术运算符
| 运算符 | 运算 | 范例 | 结果 |
| :————: | :——————————————————————————: | :—————————————: | :———————————: |
| + | 正号 | +3 | 3 |
| - | 负号 | b=4; -b | -4 |
| + | 加 | 5+5 | 10 |
| - | 减 | 6-4 | 2 |
| | 乘 | 34 | 12 |
| / | 除 | 5/5 | 1 |
| % | 取模 | 7%5 | 2 |
| ++
++ | 自增(前),先运算后取值
自增(后),先取值后运算 | a=2; b=++a;
a=2; b=a++; | a=3; b=3;
a=3; b=2; |
| —
— | 自减(前),先运算后取值
自减(后),先取值后运算 | a=2; b=—a;
a=2; b=a—; | a=1; b=1;
a=1; b=2; |
| + | 字符串连接 | “He”+”llo” | “Hello” |PS:
如果对负数取模,可以把模数负号忽略不记,如:5%-2=1. 但被模数是负数则不可以忽略。此外,取模运算的结果不一定总是整数
对于除号 “/“ ,它的整数除和小数除是有区别的
“+” 除了字符串相加功能外,还能把非字符串转换成字符串
例如:`System.out.println(“5+5=”+5+5); // 打印结果是 5+5=55
- char类型数据是可以做数学运算的,在做数学运算的时候把字符转为ASCII码进行
赋值运算符
- 符号: = 可以进行连续赋值
- +=、-=、*=、/=、%=
- 变量参与运算时,Java程序不知道具体的这个变量在做完运算后会不会查重当前变量的范围,所有会先把变量转换为一个更大长度
- 在使用扩展运算符时,变量参与运算时会把结果自动强制转换为当前变量的类型
比较运算符(关系运算符)
| 运算符 | 运算 | 范例 | 结果 |
| :——: | :———: | :—: | :—-: |
| == | 相等于 | 4==3 | False |
| != | 不等于 | 4!=3 | True |
| < | 小于 | 4<3 | false> | 大于 | 4>3 | True |
| <= | 小于等于 | 4<=3 | False |
| >= | 大于等于 | 4>=3 | True |3>逻辑运算符
| 操作 | 选择 | 选择 | 选择 | 选择 |
| :——————: | :—-: | :—-: | :—-: | :—-: |
| a | true | true | false | false |
| b | true | false | true | true |
| a&b | true | false | false | false |
| a|b | true | true | true | false |
| !a | false | false | true | true |
| a^b | false | true | true | false |
| a&&b 短路与 | true | false | false | false |
| a||b 短路或 | true | true | true | false |“&” 和 “&&”的区别:
单 & 时,左边无论真假,右边都进行运算
双 && 时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算
“|” 和 “||”的区别
|| 表示,当左边为真,右边不参与运算
位运算符:位运算都是针对二进制进行运算
| 运算符 | 运算 | 范例 | 总结 |
| :——: | :————: | :———————————————————————: | :—————————————————————————————: |
| << | 左移 | 3<<2 12 = -> 3 2 2 = 12
m<m 2^n | 空位补0,被移除的高位丢弃,空缺位补0 | 2>
| >> | 右移 | 3>>1 = 1 -> 3/2 = 1
m>>n -> m 2^-n | 被移除的二进制最高位是0,右移后,空位补0;
最高位是1,空缺位补1 |
| >>> | 无符号右移 | 3>>>1 = 1 -> 3/2 = 1 | 被移除二进制无论最高位是0或者是1,空缺位都用0补 |
| & | 与运算 | 6&3 = 2 -> 110&011 = 010 | 二进制位进行&运算,只有1&1结果是1,否则是0 |
| | | 或运算 | 6|3 = 7 -> 110|011 = 111 | 二进制位进行|运算,只有0|0结果是0,否则是1 |
| ^ | 异或运算 | 6^3 = 5 -> 110 ^011 = 101 | 相同二进制位进行^运算结果是0,不相同结果是1 |
| ~ | 反码 | ~6 = -7 | 正数取反,各二进制码按补码各位取反;
负数取反,各二进制码按补码各位取反 |PS :有符号的右移是看右移之后的首位是0还是1,是0前面空位,是1就补1
三元运算符
(条件表达式)?表达式1 :表达式2
条件表达式为 true,运算后的结果为表达式 1
条件表达式为 false,运算后的结果为表达式 2
运算符的优先级
- 本文作者: Kelly Liu
- 本文链接: http://tiantianliu2018.github.io/2019/09/07/Java-Re-learn/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!