目录
JDK,JRE,JVM区别与联系
区别
JDK
java开发工具包,针对Java开发人员,可以编译运行Java程序
JDK是Java的核心,包含运行Java运行环境(JRE)和一些Java工具及Java基础类库 。
JRE
JRE:java运行时环境,针对使用java程序的客户,可以运行字节码(.class),但不能编译Java源码
JRE是Java运行环境,所有Java程序必须依赖JRE才能运行.只有JVM是不能运行字节码文件的(.class),因为解释的字节码的时候需要lib库. JRE里面有两个文件夹bin/,lib/。bin/就是JVM,lib就是JVM所需要库。JVM+lib=JREJRE是Java运行环境,所有Java程序必须依赖JRE才能运行.只有JVM是不能运行字节码文件的(.class),因为解释的字节码的时候需要lib库. JRE里面有两个文件夹bin/,lib/。bin/就是JVM,lib就是JVM所需要库。JVM+lib=JRE
JVM
JVM:用来执行解释执行字节码文件(.class),但不能正确的执行
JVM是JRE的一部分,是虚拟出来的一台计算机.通过实体计算机仿真各种计算功能来实现,JVM有自己完善的硬件架构,如处理器,堆栈,寄存器等,还有相应的指令集.JVM是Java跨平台的核心,Java程序通过JVM的跨平台,从而使Java程序跨平台.Java程序首选会被编译成字节码文件(.class),JVM的核心任务就是解释字节码文件(.class)并映射到真实CPU指令集或者系统调用.JVM不关系上层Java程序,只关系字节码(.class).
联系
JDK包含JRE,JRE包含JVM
单行和多行注释的使用
单行注释
//
多行注释
/**/
关键字,标识符
标识符
标识符由数字(0~9)和字母(A~Z和a~z),美元符号($),下划线(_)以及Unicode字符集种符号大于0xC0的说有符号组合构成(各符号之间没有空格)
关键字
boolean | 布尔数据类型 | 该类型只有两个字面值:true和false |
byte | 整数数据类型 | 1个字节,8位,取值范围为【-128,127】 |
short | 整数数据类型 | 2个字节,16位,取值范围为【-32768,32767】 |
int | 整数数据类型 | 4个字节,32位,整数类型默认是int类型,取值范围约21亿 |
long | 整数数据类型 | 8个字节,64位,long类型表示long类型常量,要加L或者l,建议加大L |
float | 小数数据类型 | 4个字节,32位,单精度,能精确到6~7位,声明一个小数类型,要加F或者f,建议加F |
double | 小数数据类型 | 8个字节,64位,双精度,能精确到15~16位,小数类型默认是double类型 |
char | 字符数据类型 | 占1位,有true和false2个值,一个表示真,一个表示假,一般用于表示逻辑运算 |
流程控制
话不多说直接上代码
/**
* @ClassName dome1
* @Author AndyWu
* @Date 2023-07-19 16:48
* @Motto 学不死就往死里学
* @Version 1.0
*/
public class dome1 {
public static void main(String[] args) {
System.out.println("==============================================");
System.out.println("学习if和else");
int a = 4;
int b = 5;
if (a==b){
System.out.println("a==b");
}else {
System.out.println("a!=b");
}
System.out.println("\n"+"==============================================");
System.out.println("学习while和break");
int c = 6;
while (c<10){
System.out.println(c+"<10");
c++;
}
System.out.println("\n"+"==============================================");
System.out.println("学习for");
int d = 8;
for (int i = 0; i < d; i++) {
System.out.println(i);
}
System.out.println("\n"+"==============================================");
System.out.println("学习switch和case");
int e = 10;
switch(e){
case 3 :
System.out.println("e=2");
break;
case 6 :
System.out.println("e=6");
break;
case 10 :
System.out.println("e=10");
break;
default :
System.out.println("没有在10以内");
}
System.out.println("\n"+"==============================================");
System.out.println("学习try,catch,finally");
try
{
System.out.println("检测语句");
}
catch (Exception exception)
{
System.out.println("解决方式");
}finally {
System.out.println("最后收尾");
}
}
}
考虑到个别同学没有运行环境,下面是运行结果
==============================================
学习if和else
a!=b
==============================================
学习while和break
6<10
7<10
8<10
9<10
==============================================
学习for
0
1
2
3
4
5
6
7
==============================================
学习switch和case
e=10
==============================================
学习try,catch,finally
检测语句
最后收尾
进程已结束,退出代码0
修饰符
publica | 对所有类可见。使用对象:类、接口、变量、方法 |
protected | 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。 |
private | 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类 |
default | (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。 |
final | final 表示"最后的、最终的"含义,变量一旦赋值后,不能被重新赋值。被 final 修饰的实例变量必须显式指定初始值。 final 修饰符通常和 static 修饰符一起使用来创建类常量。 |
transient | 序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。 |
void | void关键字,它代表的意思是什么也不返回,我们在开发过程中经常会用到,如一个方法不需要返回值时可以使用void关键字,在main方法中也是void关键字 |
static | 静态的变量,或者静态的方法 |
abstract | 抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。 |
synchronized | synchronized 关键字声明的方法同一时间只能被一个线程访问 |
volatile | volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。 |
导入
package | 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。 |
import | 导入你需要的包 |
instanceof | instanceof 是 Java 的一个二元操作符,类似于 ==,>,< 等操作符。 instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。 |
implements | 继承接口 |
保留字(了解就行)
分别有:
true,false,null,goto,const
变量,运算符
这里代码更直接,上代码!!!
import jdk.swing.interop.SwingInterOpUtils;
import javax.print.DocFlavor;
/**
* @ClassName demo2
* @Author AndyWu
* @Date 2023-07-19 17:38
* @Motto 学不死就往死里学
* @Version 1.0
*/
public class Demo2 {
public static void main(String[] args) {
int a = 2;
int b = 3;
int c = 4;
System.out.println("\n"+"==============================================");
System.out.println("定义变量");
String name = "张三";
System.out.println(name);
System.out.println("\n"+"==============================================");
System.out.println("算数运算符");
int i1 = a+b;
System.out.println("a+b="+ i1);
int i2 = c-a;
System.out.println("c-a-="+i2);
int i3 = c*b;
System.out.println("c*b="+ i3);
int i4 = c/a;
System.out.println("c/a="+ i4);
int i5 = ++c;
System.out.println("++c="+ i5);
int i6 = --c;
System.out.println("--c="+ i6);
System.out.println("\n"+"==============================================");
System.out.println("关系运算符");
boolean b1 = a==b;
System.out.println("当a==b时为" + b1);
boolean b2 = a!=b;
System.out.println("当a!=b时为" + b2);
boolean b3 = a>b;
System.out.println("当a>b时为" + b2);
boolean b4 = a<b;
System.out.println("当a<b时为" + b2);
boolean b5 = a<=b;
System.out.println("当a<=b时为" + b2);
boolean b6 = a>=b;
System.out.println("当a>=b时为" + b2);
System.out.println("\n"+"==============================================");
System.out.println("逻辑运算符");
if (a<b && a<c){
System.out.println("两个为真才是真,由一个为假则是假");
System.out.println("a<b && a>c");
}
if (a<b || a>c){
System.out.println("有一个为真就是真,两个为假则是假");
System.out.println("a<b || a>c");
}
System.out.println("取反");
System.out.println(b^c);
}
}
运行结果
==============================================
定义变量
张三
==============================================
算数运算符
a+b=5
c-a-=2
c*b=12
c/a=2
++c=5
--c=4
==============================================
关系运算符
当a==b时为false
当a!=b时为true
当a>b时为true
当a<b时为true
当a<=b时为true
当a>=b时为true
==============================================
逻辑运算符
两个为真才是真,由一个为假则是假
a<b && a>c
有一个为真就是真,两个为假则是假
a<b || a>c
取反
7
进程已结束,退出代码0
Java入门基础(2)
介绍:分支语句,循环语句,特殊流程控制,数组的简介及作用,数组的创建及基本语法,数组元素的获取和遍历,排序算法(冒泡)