网站可以换域名吗,wordpress给导航加链接,商城小程序公司,网站随机代码1.1 Java简介
Java的前身是Oak#xff0c;詹姆斯高斯林是java之父。
1.2 Java体系
Java是一种与平台无关的语言#xff0c;其源代码可以被编译成一种结构中立的中间文件#xff08;.class#xff0c;字节码文件#xff09;于Java虚拟机上运行。
1.2.3 专有名词
JDK提…1.1 Java简介
Java的前身是Oak詹姆斯·高斯林是java之父。
1.2 Java体系
Java是一种与平台无关的语言其源代码可以被编译成一种结构中立的中间文件.class字节码文件于Java虚拟机上运行。
1.2.3 专有名词
JDK提供编译、运行Java程序所需要的种种工具及资源。JRE是运行Java所依赖的环境的集合。JVM是一个虚构出来的计算机通过在实际的计算机上仿真模拟各种计算机功能来实现的。SDK开发工具包。
因范围JDKJREJVM所以只需要安装JDK即可。
1.2.4 Java跨平台管理
Java字节码的格式通用具有跨平台的特性但这种跨平台建立在JVM虚拟机上只有通过JVM处理之后才可以将字节码转换为机器码运行。
JVM虚拟机使Java具有“一次编译随处运行”的特质
首先将Java源程序编译成Java字节码。其次字节码在本地或通过网络传送给JVM。再次JVM对字节码进行即时编译或解释执行后形成二进制的机器码。最后生成的机器码可以在硬件设备上运行。
Java字节码的两种执行方式
解释执行通常采用逐条读入逐条翻译。即时编译执行JIT编译器将自己吗编译成本机器代码并把编译过的机器码保存起来以备下次使用。
1.2.5 垃圾回收机制
GC实现动态回收垃圾可以自动识别不再被程序引用的对象加以回收可以通过将某对象的引用变量置空来加速对于该对象的回收。垃圾回收一般是在CPU空闲或内存不足时自动进行的程序员无法确定GC回收的时间和顺序虽然可以通过调用对象的finalize()来建议但仍不能保证。此外由于JRE会使用后台进程检测和控制GC所以必然会对系统产生一定影响。
1.3.2 JDK目录
binJDK中命令以及工具所在目录。jre运行环境目录。lib类库所在目录。db附带数据库目录。include包含本地代码的C语言头文件的目录。scr.zip源代码压缩文件。
1.3.3 JDK常用工具
javac编译器编译为字节码文件.class文件。gcc是c语言的编译器c是c的编译器。javaJava字节码解释器。解释执行字节码文件。javadoc文档生成器。代码中的文档注释生成HTML格式的Java API文档。
1.4 Hello World 程序
所有代码都写在类体之中因为Java是一个纯面向对象语言一个完整的Java程序至少有一个类。一个Java文件只能有一个公共类且该公共类的类名与Java文件名必须相同但可以有多个非公共类。
public class HelloWord {public static void main(String[] args) {System.out.println(Hello world!);}
}
编译Java程序
javac HelloWorld.java 运行Java程序
javac HelloWorld
1.5 输出与注释 1.5.1 打印输出
System.out.println(Hello world!); // 打印一行
System.out.print(Hello World!); // 打印一段
1.5.2 注释 // 单行注释/** 这是多行注释*//*** 这是文档注释* 可以通过javacdoc将注释的内容生成HTML格式JavaAPI文档*/
2.1.3 标识符
除了下划线_和$符号以外不包含任何其他特殊字符如空格。
2.3.1 基本类型
基本类型关键字大小 布尔型 boolean1位字节型byte8位短整型short16位字符型char16位整型int 32位 浮点型float 后面加F/f32位长整型long 后面加L/l64位双精度double 后面加D/d64位
字符型可以直接使用Unicode值来表示比如\u00FF等。
2.3.2 引用类型
Java包括5种引用类型
数组类接口枚举空类型值为null的类型。
2.3.3 类型转换
自动类型转换
不损失精度——
byte——short——int——long/double
char——int
float——double
损失精度整型转空间不大于的浮点数——
int----float
long----float/double
强制类型转换
数据类型变量1 (数据类型)变量2;
2.4 操作符
一元操作符、--、、~、(type)强转
对于/和%来讲如果其中至少有一个操作数是浮点数就可以允许除数为0结果是Infinity和-Infinity而如果是对0取余那任何操作数结果都是NaN非数。
位运算
操作符描述示例均原码按位与1与1返回1001 111 001|按位或存在1返回1001 | 101 101^按位异或相同返回0反之返回1001 ^ 101 100左移右边空出补0等价乘方10011010 1 10110100右移左边空出补0/1(看符号)等价开方10011010 1 10001101无符号右移无视正负号左边空出补010011010 1 01001101
关系运算
使用过程中如果比较的两个都是数值型那只要值相等都返回true即使是字符和整型、整型和浮点比较
2.5.3 转移语句
break和标签语句配合使用可以跳出任意循环/程序块。
outer : for(int i 0; i 5; i ) {for(int j 0; j 5; j ) {System.out.println(i );if(j 2) break outer;}}
2.6 数组
直接输出数组名的时候会输出数组对象的哈希码但是如果是字符数组则会输出一个”“空字符串这是因为Java内部会将一个字符型数组看成一个字符串。数组变量名储存在栈中也就是首地址而在堆中储存数组元素。
数组初始化 // 静态初始化int[] a1 {1, 2, 3};int[] a2 new int[] {1, 2, 3};int a3[] {1, 2, 3};// 动态初始化int[] a4 new int[2];a4[0] 1;
如果是二维数组则可以不必要求每个数据元素的长度相等也就是内部的一维数组的长度可以不必相同使用动态初始化即可。