javaSe基础
文章平均质量分 78
bone_ds
关于明天的事,后天就知道了.
展开
-
JVM内存结构
(.class文件),按照JVM规范可知类文件结构(包含魔数、版本、常量池、访问标识与继承信息、成员变量信息、方法信息),可将二进制字节码翻译为JVM指令(这里可借助Oracle的javap工具反编译 class 文件),JVM跨平台的基础便依赖JVM指令,新生代空间不足时,触发 minor gc,伊甸园和 from 存活的对象使用 copy 复制到 to 中,存活的。负责回收堆中不再被引动的对象,当JAVA代码无法实现某些功能,需要使用底层操作系统功能,则需要调用。逐行解释执行方法代码,热点代码由。原创 2024-01-10 22:56:06 · 1150 阅读 · 0 评论 -
[ java ] 坦克大战 4.0 ~
坦克大战4.0新增功能内容:敌坦克移动发射,并自动装弹我方坦克被击中爆炸5.0版本已上传提示:爆炸图片需自行按路径放在工程文件的out文件夹对应的包下画框package com.hspedu.tankgame04plus;import javax.swing.*;/** * @ClassName * @Description * @Author zxk * @DateTime 2022-01-14-18:24 * @Version *///第四版加强:敌坦克移动发射-&原创 2022-02-12 03:05:43 · 199 阅读 · 0 评论 -
[ java ] 坦克大战 5.0 ~ 最终完整版
坦克大战5.0新增功能内容:(加入IO流内容)防止敌坦克间重叠击杀数显示保存上局游戏进度–>两种开局方式加入开局音乐修复记录文件丢失后的异常5.0版本为最终版提示:爆炸图片需自行按路径放在工程文件的out文件夹对应的包下以及适当位置安放开局音乐文件,否则会报空指针异常画框package com.hspedu.tankgame06;import javax.swing.*;import java.awt.event.WindowAdapter;import java.a原创 2022-02-12 02:33:40 · 2122 阅读 · 1 评论 -
[ java ] 坦克大战 3.0 ~
介绍坦克大战3.0内容:敌坦克发射子弹我方子弹击中敌坦克–>敌坦克消失–>爆炸敌坦克随机移动控制双方坦克在范围内移动优化:我方发射子弹一颗在另一颗消亡后我方连续发射多颗子弹4.0版本已上传画框package com.hspedu.tankgame04;import javax.swing.*;/** * @ClassName * @Description * @Author zxk * @DateTime 2022-01-14-18:24 * @Ve原创 2022-02-12 02:18:44 · 126 阅读 · 0 评论 -
[ java ] 坦克大战 2.0 ~
介绍坦克大战2.0内容:加入多线程内容–>按键使我方坦克发射子弹3.0版本已上传画框package com.hspedu.tankgame03;import javax.swing.*;/** * @ClassName * @Description * @Author zxk * @DateTime 2022-01-14-18:24 * @Version *///第三版优化:我方发射子弹public class ZxkTankGame03 extends JFra原创 2022-02-12 01:57:11 · 239 阅读 · 0 评论 -
[ java ] 坦克大战1.0 ~
介绍坦克大战1.0内容:熟悉java绘图方法–>画出坦克了解java事件处理机制–>监听键盘事件–>按方向键让坦克动起来画框package com.hspedu.draw.tankgame;import javax.swing.*;/** * @ClassName * @Description * @Author zxk * @DateTime 2022-01-14-18:24 * @Version *///画框public class ZxkTank原创 2022-02-12 01:37:25 · 283 阅读 · 0 评论 -
[ java基础 ] 数组: 开发工具.数组内存划分.可变参数
IntelliJ IDEAIDEA层次结构idea的快捷模版和快捷键快捷模版:变量输出语句 soutv正序循环 循环次数.fori倒序循环 循环次数.forr快捷键:单行注释 Ctrl + /取消单行注释 Ctrl + /多行注释 Ctrl + Shift + /取消多行注释 Ctrl + Sh原创 2022-02-12 01:00:14 · 6927 阅读 · 0 评论 -
[ java基础 ] 数组: 反转.冒泡排序.二分查找.动态扩容.二维数组
数组数组的应用基础应用:针对数组中元素的顺序和数据值不做任何改变 案例:求和,求最值,…中级应用:针对数组中的地址值的改变,原数组的顺序和数据值不做任何改变 案例:动态扩容,删除,插入高级应用:针对原数组进行操作,不改变地址值,改变元素的顺序和数据值 案例:反转,排序遍历数组及打印public class ArrayDemo01 { public static void main(String[] args) { //声明初始化数组原创 2022-02-12 00:50:26 · 236 阅读 · 0 评论 -
[ java基础 ] 面向对象: 封装.javaBean.this
面向对象面向对象OOP(Object Oriented Progarmming)特点:面向对象的语言中,包含了三大基本特征,即封装、继承和多态。类和对象类:是一类事物的"属性"和"行为"的集合属性:状态信息行为:行为动作类和对象的关系:类是对象的模版,抽象对象是类的实体,实例类的设计:需要将以前的代码进行拆分:a.标准类:创建对象的类b.测试类:含有主方法的类程序中标准类的分类a.API源码提供的类(Java系统提供的类)b.自定义类类的设计原创 2022-02-12 00:31:25 · 222 阅读 · 0 评论 -
[ java基础 ] static.单例设计模式.Math类.Arrays类
static关键字用来修饰的 变量 ,方法 ,代码块,内部类(暂时不涉及),被修饰的成员是属于类的,而不是单单是属于某个对象的。也就是说,既然属于类,就可以不靠创建对象来调用了。类变量当 static 修饰成员变量时,该变量称为类变量。该类的每个对象都共享同一个类变量的值。任何对象都可以更改该类变量的值,但也可以在不创建该类的对象的情况下对类变量进行操作。静态变量:声明在类中,方法外,且含有static修饰的变量格式:修饰符 static 数据类型 变量名;含义:静态变量不再属于对原创 2022-02-12 00:19:15 · 338 阅读 · 0 评论 -
[ java基础 ] 继承: 方法重写.抽象方法.super/this关键字
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类中无需再定义这些属性和行为,只需要和抽取出来的类构成某种关系。如图所示:其中,多个类可以称为子类,也叫派生类;多个类抽取出来的这个类称为父类、超类(superclass)或者基类。继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。好处提高代码的复用性。提高代码的扩展性。类与类之间产生了关系,是学习多态的前提。格式:class 子类类名 extends 父类类名注意:a只支持单继承,原创 2022-02-11 23:49:14 · 1233 阅读 · 0 评论 -
[ java基础 ] 多态.接口
final关键字final: 不可改变。可以用于修饰类、方法和变量。类:被修饰的类,不能被继承。方法:被修饰的方法,不能被重写。变量:被修饰的变量,不能被重新赋值。final class 类名 {}修饰符 final 返回值类型 方法名(参数列表){//方法体}修饰变量局部变量——基本类型基本类型的局部变量,被final修饰后,只能赋值一次,不能再更改。局部变量——引用类型引用类型的局部变量,被final修饰后,只能指向一个对象,地址不能再更改。但是不影响对象内部的成员原创 2022-02-11 23:44:52 · 253 阅读 · 0 评论 -
[ java基础 ] 内部类.类/实例的初始化
内部类当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,不在其他地方单独使用,那么整个内部的完整结构最好使用内部类。根据内部类声明的位置(如同变量的分类),我们可以分为:(1)成员内部类:静态成员内部类非静态成员内部类(2)局部内部类有名字的局部内部类匿名的内部类非静态成员内部类和外部类一样,它只是定义在外部类中的另一个完整的类结构可以继承自己的想要继承的父类,实现自己想要实现的父接口们,和外部类的父类和父接口无关可以在非静态原创 2022-02-11 23:40:47 · 1749 阅读 · 0 评论 -
[ java基础 ] 异常&日期时间类
异常异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。注意:异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行.异常体系Throwable体系:Error:严重错误Error,无法通过处理的错误,只能事先避免,好比绝症。Exception:表示异常,异常产生后程序员可以通过代码的方式纠正,使程序继续运原创 2022-02-11 23:14:52 · 635 阅读 · 0 评论 -
[ java基础 ] 包装类&String类: 装箱.拆箱.转换
包装类装箱与拆箱装箱:从基本类型转换为对应的包装类对象。拆箱:从包装类对象转换为对应的基本类型。基本数值---->包装对象Integer i = new Integer(4);//使用构造函数Integer iii = Integer.valueOf(4);//使用包装类中的valueOf方法包装对象---->基本数值int num = i.intValue();自动装箱与自动拆箱(JDK5.0新特性)Integer i = 4;//自动装箱。相当于Integer i =原创 2022-02-11 23:07:26 · 773 阅读 · 0 评论 -
[java基础] 比较器.注解.枚举类
java比较器Java实现对象排序的方式有两种: 自然排序:java.lang.Comparable 定制排序:java.util.Comparator补充String类的compareTo方法(方法体与比较器接口的实现类重写方法体基本一样)public class CompareTo { public static void main(String[] args) { String s1 = "abc"; String s2 = new String原创 2022-02-11 22:25:25 · 156 阅读 · 0 评论 -
[java基础] 泛型
泛型基本介绍在JDK1.5之前只能把元素类型设计为Object,JDK1.5之后使用泛型来解决。所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这个类型参数将在使用时实例化时确定(即传入实际的类型参数,也称为类型实参)。Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常。同时,代码更加简洁、健壮。集合中使用泛型类型推断写入时自动检验并编译警告不需要强转自定义泛型结构泛型原创 2022-02-11 22:16:06 · 161 阅读 · 0 评论 -
[ java基础 ] 集合: 扩容机制&底层源码分析
集合的框架体系Java 的集合类很多,主要分为两大类,如图Collection的实现类Map的实现类说明:集合主要是两组(单列集合 , 双列集合)Collection 接口有两个重要的子接口 List Set , 他们的实现子类都是单列集合Map 接口的实现子类 是双列集合,存放的== K-V==Collection 接口Collection 接口的特点Collection实现子类可以存放多个元素,每个元素可以是Object有些Collection的实现类, (Li原创 2022-02-11 21:07:40 · 1034 阅读 · 0 评论 -
[ java基础 ] 多线程: 静态代理.守护线程.状态转换.线程同步.互斥锁.死锁
线程相关概念程序:是为完成特定任务,用某种语言编写的一组指令的集合.简单来说:就是我们写的代码进程:进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存空间。当我们使用迅雷,又启动了一个进程,操作系统将为迅雷分配新的内存空间。进程是程序的一次执行过程,成是正在运行的一个程序。是动态过程:有它自身的产生、存在和消亡的过程线程:线程由进程创建的,是进程的一个实体一个线程可以拥有多个进程,如下图其他相关概念单线程:同一个时原创 2022-02-11 12:27:23 · 244 阅读 · 0 评论 -
[ java基础 ] IO流: 字节流.字符流.处理流(修饰器模式).对象流.序列化.Properties类配置文件
IO流原创 2022-02-11 00:58:58 · 230 阅读 · 0 评论 -
[java基础] 网络编程: 域名.InetAddress类.TCP/IP
网络编程原创 2022-02-10 23:26:23 · 663 阅读 · 0 评论 -
[ java基础 ] 反射: 原理.调用优化.Class类.类加载
反射原创 2022-02-10 22:08:28 · 354 阅读 · 0 评论