目录
一.初始JavaSE
二.体系结构
三.常用名词
1.名词
四.运行Java程序
1.查看版本信息
2.编译指令javac
3.编译指令java
五.配置环境变量
1.
2.
3.
六.字节码文件
七.JVM ---- 虚拟机
八.命名规范
1.包的命名规范
2.类的命名规范
九.Java的注释
1. 单行注释 //
2.多行注释
3.文档注释
十.变量
1.变量的分类
1.成员变量
2.局部变量
2.变量的存储
十一.数据类型
1.基本数据类型
1.数字类型
2.非数字类型
2.基本数据类型的转换
十二.运算符
1.算数运算符
2.三目运算符:
3.位运算
十三.方法
1. 方法三个要素
一.初始JavaSE
1992年底,Java最初的原型Oak产生了
1995年正式更名为Java
二.体系结构
1.JAVASE Java的基本语法应用
面向对象思想 IO 多线程 反射等
2.JAVA2E J2EE JAVAWEB 针对web浏览器产生的应用
淘宝 OA 京东 企业学校的管理系统
3.JAVAME 目前已淘汰
三.常用名词
1.名词
JDK Java Development kit ---- java的开发工具包
JRE Java Runtime Enviroment ---- Java的运行时环境
四.运行Java程序
1.查看版本信息
java -version
java -version
E:>java -version java version "1.8.0_171" Java(TM) SE Runtime Environment (build 1.8.0_171-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
Java的版本 Java的运行环境 Java的虚拟机(HotSpot)
2.编译指令javac
javac
E:>javac
用法: javac
其中, 可能的选项包括:
-g 生成所有调试信息
-g:none 不生成任何调试信息
-g:{lines,vars,source} 只生成某些调试信息
-nowarn 不生成任何警告
-verbose 输出有关编译器正在执行的操作的消息
-deprecation 输出使用已过时的 API 的源位置
-classpath <路径> 指定查找用户类文件和注释处理程序的位置
-cp <路径> 指定查找用户类文件和注释处理程序的位置
-sourcepath <路径> 指定查找输入源文件的位置
-bootclasspath <路径> 覆盖引导类文件的位置
-extdirs <目录> 覆盖所安装扩展的位置
-endorseddirs <目录> 覆盖签名的标准路径的位置
-proc:{none,only} 控制是否执行注释处理和/或编译。
-processor [,,...] 要运行的注释处理程序的名称; 绕过默认的搜索进程
-processorpath <路径> 指定查找注释处理程序的位置
-parameters 生成元数据以用于方法参数的反射
-d <目录> 指定放置生成的类文件的位置
-s <目录> 指定放置生成的源文件的位置
-h <目录> 指定放置生成的本机标头文件的位置
-implicit:{none,class} 指定是否为隐式引用文件生成类文件
-encoding <编码> 指定源文件使用的字符编码
-source <发行版> 提供与指定发行版的源兼容性
-target <发行版> 生成特定 VM 版本的类文件
-profile <配置文件> 请确保使用的 API 在指定的配置文件中可用
-version 版本信息
-help 输出标准选项的提要
-A关键字[=值] 传递给注释处理程序的选项
-X 输出非标准选项的提要
-J<标记> 直接将 <标记> 传递给运行时系统
-Werror 出现警告时终止编译
3.编译指令java
java
E:>java
用法: java [-options] class [args...]
(执行类)
或 java [-options] -jar jarfile [args...]
(执行 jar 文件)
其中选项包括:
-d32 使用 32 位数据模型 (如果可用)
-d64 使用 64 位数据模型 (如果可用)
-server 选择 "server" VM
默认 VM 是 server.
-cp <目录和 zip/jar 文件的类搜索路径>
-classpath <目录和 zip/jar 文件的类搜索路径>
用 ; 分隔的目录, JAR 档案
和 ZIP 档案列表, 用于搜索类文件。
-D<名称>=<值>
设置系统属性
-verbose:[class|gc|jni]
启用详细输出
-version 输出产品版本并退出
-version:<值>
警告: 此功能已过时, 将在
未来发行版中删除。
需要指定的版本才能运行
-showversion 输出产品版本并继续
-jre-restrict-search | -no-jre-restrict-search
警告: 此功能已过时, 将在
未来发行版中删除。
在版本搜索中包括/排除用户专用 JRE
-? -help 输出此帮助消息
-X 输出非标准选项的帮助
-ea[:...|:]
-enableassertions[:...|:]
按指定的粒度启用断言
-da[:...|:]
-disableassertions[:...|:]
禁用具有指定粒度的断言
-esa | -enablesystemassertions
启用系统断言
-dsa | -disablesystemassertions
禁用系统断言
-agentlib:[=<选项>]
加载本机代理库 , 例如 -agentlib:hprof
另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
-agentpath:[=<选项>]
按完整路径名加载本机代理库
-javaagent:[=<选项>]
加载 Java 编程语言代理, 请参阅 java.lang.instrument
-splash:
五.配置环境变量
java
E:>java
用法: java [-options] class [args...]
(执行类)
或 java [-options] -jar jarfile [args...]
(执行 jar 文件)
其中选项包括:
-d32 使用 32 位数据模型 (如果可用)
-d64 使用 64 位数据模型 (如果可用)
-server 选择 "server" VM
默认 VM 是 server.
-cp <目录和 zip/jar 文件的类搜索路径>
-classpath <目录和 zip/jar 文件的类搜索路径>
用 ; 分隔的目录, JAR 档案
和 ZIP 档案列表, 用于搜索类文件。
-D<名称>=<值>
设置系统属性
-verbose:[class|gc|jni]
启用详细输出
-version 输出产品版本并退出
-version:<值>
警告: 此功能已过时, 将在
未来发行版中删除。
需要指定的版本才能运行
-showversion 输出产品版本并继续
-jre-restrict-search | -no-jre-restrict-search
警告: 此功能已过时, 将在
未来发行版中删除。
在版本搜索中包括/排除用户专用 JRE
-? -help 输出此帮助消息
-X 输出非标准选项的帮助
-ea[:...|:]
-enableassertions[:...|:]
按指定的粒度启用断言
-da[:...|:]
-disableassertions[:...|:]
禁用具有指定粒度的断言
-esa | -enablesystemassertions
启用系统断言
-dsa | -disablesystemassertions
禁用系统断言
-agentlib:[=<选项>]
加载本机代理库 , 例如 -agentlib:hprof
另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
-agentpath:[=<选项>]
按完整路径名加载本机代理库
-javaagent:[=<选项>]
加载 Java 编程语言代理, 请参阅 java.lang.instrument
-splash:
五.配置环境变量
设置---高级系统设置---环境变量
1.
变量名: JAVA_HOME
变量值: jdk的安装目录
C:Program FilesJavajdk1.8.0_171
2.
变量名: path
变量值: C:Program FilesJavajdk1.8.0_171bin
Jdk的bin目录
不要写成 %JAVA_HOME%bin; 在环境变量多的时候可能找不到此样式的路径
3.
变量名:Class_path
变量值:.;C:Program FilesJavajdk1.8.0_171libdt.jar;
C:Program FilesJavajdk1.8.0_171libtools.jar;
jdk的lib目录下 dt.jar 和tools.jar
六.字节码文件
字节码文件 HelloWorld.class
源代码文件 HelloWorld.java
字节码文件底层就是二进制的数据文件
Java是一个跨平台的语言,JVM是一个跨语言的平台,两者并无关系。
以class结尾的不一定是字节码文件,以cafe babe(标准识别)开头的肯定是字节码文件
七.JVM ---- 虚拟机
ClassLoad ---- 类的加载器
将字节码文件传入类的加载器,字节码文件还需要有Java的类库的支持,然后通过字节码解释器和JIT及时编辑器,分别执行引擎,将结果输出在硬件上。这整体的过程就是JVM虚拟机的工作原理。
八.命名规范
1.包的命名规范
公司域名的反写
2.类的命名规范
1. 望文生义 驼峰标识法(FangFa)
2. 首字母大写
3. 不能以数字开头,但是可以以数字结尾
4. 不能是java中的保留关键字(class,public 等)
5. 特殊符号不可以,除了$和_符号以外
九.Java的注释
1. 单行注释 //
2.多行注释
3.文档注释
2.多行注释
3.文档注释
十.变量
变量即是可变的数据,用于存放数据的载体
名称+数据类型
1.变量的分类
1.成员变量
在一个类中相当于这个类的一个成员
作用域:在类中,不在方法的里面
2.局部变量
在方法中的变量
作用域:在方法中随着方法的结束而消亡 被回收掉
2.变量的存储
1.寄存器 空间比较小 运算速度是非常快 类似于电脑中的cpu
2.栈 Stack 存放基本数据类型的数据 和引用数据类型的引用 在栈空间中所存放的数据都具有 一定的生存期限。存储的数据灵活性较低。
3.堆 heap 主要用于存放new 出来的对象 ----new出来的对象都是引用数据类型,堆空间的变量不需要生存期限,而且存储的数据相对比较灵活,堆空间中存放成员变量。
4.常量池 主要存放的内容 字符串的常量和基本数据类型的常量 包括被以下关键字所修饰的变量 比如说public static final 被这三个关键字修饰的变量都是常量。常量池所在的内存区域叫做方法区。
5.静态域 用来存放static所修饰的变量
6.非RAM存储 ---硬盘
十一.数据类型
1.基本数据类型
1.数字类型
1.数字类型
字节型 ---- byte 8个bit 一个字节
短整型 ---- short 16个bit 两个字节
整型 ---- int 32个bit 四个字节
长整型 ---- long 64个bit 八个字节
单精度 ---- float 32个bit 四个字节
双精度---- double 64个bit 八个字节
2.非数字类型
1.Char 类型 用来表示单个字符 16个bit 2个字节
单引号作为char类型的唯一标识
每一个字符都对应ASCII码表
48表示0 65表示A 97 表示小写a
char是基本数据类型,可以直接用 == 做比较, "a" != "a", 但 'a' == 'a'
2.布尔类型
boolean类型 8个bit 1个字节 默认值为false
2.基本数据类型的转换
变量在进行运算的时候需要转为同种类型才能运算
byte-short-int-long
float -double
大类型 转换为小类型时 -----强制转换
小类型转换为大类型时 ----自动转换
boolean char byte 三者之间不可以进行转换
十二.运算符
1.算数运算符
+ - * / % (求余)
7%-5 = 2(-1)
-7 % 5 = -2(-1)
-7%-5 = -2(1)
递增++
递减 --
++ 放数字后 先取值再运算
++ 放数字前 先运算再取值
int a = 2; int b = 9; int c = a+++b; //11 a在c计算完在加1 int d = ++a+(++b);//14 int e = a+++(++b);//15 int f = a+++b++;//16 // a 6 b 12 System.out.println(a); System.out.println(b); System.out.println(c);
A+=1=> A=A+1;
> > = < < = 返回的结果一定为boolean类型
2.三目运算符:
三元运算符 ----相当于if语句
X?Y:Z
x如果为true 则执行表达式Y 如果x为false 则执行表达式Z
3.位运算
所有的位运算和移位运算都是基于二进制来进行运算的
按位与 & 两位都为1时 则结果为1 否则为0
例如 5&13 -----5
0101
1101
-----------
0101
按位或 | 参加运算的两位都为0时才为0 否则为1
例如 5|13 ---13
0101
1101
-----------
1101
按位异或 ^ 参加运算的两位不同,结果为1 相同为0
例如 5^13 ------8
0101
1101
----------
1000
移位运算
左移 << 将数字进行向左移动相应的位置 后面的空位补0 左移运算整数的数字,数值会 越来越大
13<<2
0000 1101
0011 0100
2<<2
0000 0010
0000 1000 ----8
0000 0011
0000 1100 ----12
X< 右移 >> 将数字的二进制向右移动相应的位置 如果是正数则空位补0 如果是负数则空位补1. 13>>2 0000 1101 0000 0011 -------------3 5的二进制 0000 0101 1111 1011 -5的二进制 反码+1 -5>>2 1111 1011 1111 1110 ------------- -2 无符号右移:不管最高位是0还是1 空位都补0 0000 0101 0000 0001 -5>>>2 0011 .....1111 1110 32个bit 4个字节 返回类型 方法名称是 参数列表
5>>>2
1111 1010 十三.方法
1. 方法三个要素



