
Java
:-D:)
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JVM(3)-垃圾回收机制
文章目录一、垃圾回收机制简介二、垃圾回收时机三、垃圾回收机制/策略————如何判断对象已死?3.1 可达性分析算法3.2 引用计数算法3.2.1 编程语言类型3.2.1.1 动态语言3.2.1.2 静态语言3.2.1.3 编译型语言3.2.1.4 解释型语言四、【了解】Java的引用类型4.1 强引用4.2 软引用4.3 弱引用4.4 虚引用五、JMM中的内存划分5.1 虚拟机栈5.2 方法区(jdk1.7)/ 元空间(jdk1.8)5.3 堆六、垃圾回收的过程6.1 新生代GC(Minor GC):YGC原创 2020-05-27 16:51:14 · 622 阅读 · 0 评论 -
JVM(2)-类加载
一个Java文件从编码完成到最终执行,一般主要包括两个过程编译和运行。编译:即把我们写好的java文件,通过javac命令编译成字节码,也就是我们常说的.class文件。运行:则是把编译声称的.class文件交给Java虚拟机(JVM)执行。而我们所说的类加载过程即是指JVM虚拟机把.class文件中类信息加载进内存,并进行解析生成对应的class对象的过程。...原创 2020-05-27 11:33:14 · 328 阅读 · 0 评论 -
JVM(1)-Java内存分配
文章目录JDK1.7内存模型JDK1.8内存模型线程私有的内存区域程序计数器Java虚拟机栈本地方法区线程共享区域Java堆方法区/元数据区运行时常量池直接内存常量池的补充说明class文件常量池运行时常量池字符串常量池JDK1.7内存模型JDK1.8内存模型线程私有的内存区域程序计数器一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。Java虚拟机栈每个方法执行的时候都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法调用直至执行完成原创 2020-05-25 12:01:40 · 425 阅读 · 0 评论 -
基于Everything的项目
1.创建Maven项目创建Maven项目2.配置所需要的依赖和插件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...原创 2020-04-17 08:26:29 · 601 阅读 · 0 评论 -
Java-异常
1.异常的基本用法捕获异常try{有可能出现异常的语句;}[catch (异常类型 异常对象) {} ... ][finally {异常的出口}]try 代码块中放的是可能出现异常的代码.catch 代码块中放的是出现异常后的处理行为.finally 代码块中的代码用于处理善后工作, 会在最后执行.其中 catch 和 finally 都可以根据情况选择加或者不加,但是...原创 2020-04-01 11:21:56 · 167 阅读 · 0 评论 -
Java数据处理
这个看看记住怎么使用就可以了import java.text.DecimalFormat;/** * Demo class * * @author haozhang * @date 2020/03/27 */public class DataProcessing { public static void main(String[] args) { doub...原创 2020-03-27 12:12:34 · 178 阅读 · 0 评论 -
牛客网-锤子剪刀布(20)
题目链接import java.util.HashMap;import java.util.Map;import java.util.Scanner;/** * Demo class * * @author haozhang * @date 2020/03/05 */public class Main { /** * 用来记录甲胜利的次数 */...原创 2020-03-05 16:54:34 · 207 阅读 · 0 评论 -
Java实现凯撒密码的加密和解密
加密public class CaeSar { private static char[] CAPITAL_LETTERS = new char[] {'A','B','C','D', 'E','F','G','H','I','J','K','L', 'M','N','O','P','Q','R','S', 'T','U','V','W',...原创 2020-03-03 17:20:58 · 1672 阅读 · 0 评论 -
Java-Scanner类的一些用法
java.util.Scanner类这是一个用于扫描输入文本的实用程序。借助Scanner可以编写自定义的内容。nextLine()将此扫描仪推进到当前行并返回跳过的输入。 此方法返回当前行的其余部分,不包括末尾的任何行分隔符。由于该方法继续搜索通过输入寻找行分隔符的输入,所以如果不存在行分隔符,则它可以缓冲搜索行的所有输入,以跳过该行。...原创 2019-10-13 18:13:22 · 158 阅读 · 0 评论 -
Java中的getOrDefault()方法
getOrDefault(Object key, V defaultValue)方法是Map接口下的一个方法。作用:当 Map 集合中有这个 key 时,就使用这个 key 值;如果没有就使用默认值 defaultValue原创 2019-09-06 13:41:36 · 8477 阅读 · 1 评论 -
Java-subList
subListsubList方法是用来返回链表中 fromIndex 到 toIndex 的部分。(如果 fromIndex 和 toIndex 相等,则返回空)接口:List注意:返回链表的部分包含 fromIndex,不包含 toIndex;也就是 [fromIndex, toIndex)...原创 2019-09-05 16:57:35 · 140 阅读 · 0 评论 -
Java中的copyOfRange
copyOfRange是java.util包中的Arrays类的静态内部方法,可以被直接调用。功能将一个原始的数组,从下标from开始复制,一直到下标to,生成一个新的数组。注意这里的下标是左闭右开的,即 [from,to)要使用这个方法就需要在类前面加上 “import java.util.Arrays;”...原创 2019-09-04 18:24:15 · 855 阅读 · 1 评论 -
Java 抽象关键字 (abstract)
1、abstract 的作用用来修饰类,该类不可被实例化;修饰方法,方法体为空。2、抽象类设计类应该保证父类和子类能够共享,有时候父类没有具体的实例,这样的类就叫做抽象类。抽象类是用来模型化那些父类无法确定全部实现,而是由子类提供具体实现的对象的类。抽象类不可被实例化抽象类中可以没有抽象方法抽象方法所在的类一定是抽象类3、抽象方法抽象类中只表明方法,没有方法体的方法主要用...原创 2019-09-03 16:58:41 · 412 阅读 · 0 评论 -
Java关键字-extends 与 implements
extends 继承一个类 B 通过 extends 继承类 A 来添加功能,或者变量,或者方法,或者覆盖类 A 的方法B 类可以被实例化,实例不仅能访问 B 的属性和方法还可以访问 A 的属性和方法。Java只支持单继承一个子类只能有一个基类,一个基类可以派生出多个子类implements实现父类,子类不可以覆盖父类的方法或者变量。可以实现父类,也...原创 2019-08-29 12:33:18 · 176 阅读 · 0 评论 -
Java中的接口(intreface)
1、什么是接口接口是一系列方法的声明,是一些方法特征的集合。接口只体现方法特征,其方法是由其他类实现的。2、接口的定义和使用接口里的变量默认为 public static final (必须是 public)接口里的方法必须是 public abstract (默认public abstract);接口里只能放方法的声明,不能定义3、使用接口想要知道一只鸟是大鸟还是小鸟用小鸟类实现...原创 2019-08-28 15:56:12 · 564 阅读 · 0 评论 -
Java覆写(重写)和重载
覆写 (Override) 是父类与子类之间的多态性,就是子类对父类方法的重新定义。当子类中的方法和父类中的方法具有相同名称和参数时子类中的方法被重写;子类中方法的访问权限不能比父类中方法的访问权限小。如果需要使用父类中的该方法则可使用 super 关键字来调用。super覆写要点:方法名、参数列表以及返回值类型要和父类中的一样;访问权限不能比父类中的小。重载 (Overload) 可以让类以...原创 2019-08-26 15:26:08 · 407 阅读 · 0 评论 -
super 关键字和 this 关键字
supersuper 关键字表示超(父)类的意思。super 关键字可以用来访问父类被子类隐藏的变量或覆盖的方法。当前类如果是从超类继承来的,当调用 “super.方法名 ” 就是调用基类的 “方法名” 方法。super (参数):调用基类中的某一个构造方法(只能出现子构造函数的第一条语句)调用 super() 必须出现在子类构造方法的第一行。每个子类构造方法都隐含地调用super()。...原创 2019-08-25 15:17:09 · 209 阅读 · 0 评论 -
Java以给定值x为基准将链表分割为两部分,所有小于x的结点排在大于或等于x的结点之前
要求:以给定值x为基准将链表分割为两部分,所有小于x的结点排在大于或等于x的结点之前,注意分割之后保持原来的数据顺序不变。思路:1 创建两个链表 smallNumberList 和 bigNumberList 分别来存储值小于x的结点和值大于等于x的结点。2 遍历整个链表,根据结点的值和x的关系,分别尾插到对应链表上;在这个过程中要注意如果被插入的链表不为空则要把结点查到这个链表最后一个结点...原创 2019-08-01 16:10:35 · 468 阅读 · 0 评论 -
冒泡排序-Java
冒泡排序思想:一次比较相邻的元素,如果前者大于后者,就交换这两个数,没给一个数组执行一趟这个操作就会把最大的数“顶到”最后去,最终得到有序序列。无序部分:[0,array1.length - i);有序部分:[array1.length - i,array1.length);冒泡排序程序:初始序列:3 2 9 7 4第一趟排序后:2 3 7 4 9第二趟排序后:2 3 4 ...原创 2019-07-23 17:21:13 · 91 阅读 · 0 评论 -
二分查找-Java
二分查找是一种有序数列的折半查找算法。二分查找的优点是比较次数少,查找快,二分查找的时间复杂度为O(log2n)。二分查找的缺点是待查表为有序表,插入删除比较困难。二分查找程序:...原创 2019-07-17 17:28:49 · 135 阅读 · 0 评论 -
Java-数组逆置
数组逆置思想:数组中第一个数和倒数第一个数交换、第二个数和倒数第二个数交换…一直依次进行。 时间复杂度:O(n)数组逆置程序:原创 2019-07-22 18:01:58 · 599 阅读 · 1 评论 -
Java-单链表的逆置
单链表逆置步骤:1.判断首结点是否为空,为空不需要逆置2.如果只有一个结点,也不需要逆置3.需要逆置就先创建一个新链表,然后把原链表依次头插到新链表即可时间复杂度:O(n)单链表逆置程序:...原创 2019-07-26 19:05:12 · 917 阅读 · 0 评论 -
Java-删除单链表中的val
删除单链表中val步骤:1.判断链表是否为空,为空无法删除2.定义前驱节点,从前驱节点的后继节点开始遍历,如果后继节点的值等于val,前驱节点的next指向后继节点的next;否则把后继节点赋给前驱结点;一直遍历整个链表。3.判断首节点的值是否为val,如果是把首节点的后继节点赋给首节点。删除单链表中val程序:...原创 2019-07-27 12:10:59 · 1031 阅读 · 0 评论 -
Java删除链表的重复结点
要求:删除一个有序链表中的重复结点,重复的结点不保留。思路:使用两个引用(相邻的)遍历整个链表;如果值不相等,根据有序性:两个引用都往后走;如果值相等,让后边的引用前进,直到遇到不相等的结点或者null;删除[front,cur)所有结点 front = cur,cur = cur.next;循环这个过程,直到 cur == null。注意:删除结点,需要前驱结点;如果最开始两个结点就...原创 2019-08-02 18:03:47 · 310 阅读 · 0 评论 -
Java判断链表是否具有回文结构
要求:给定一个链表的头指针,返回一个 bool 值,true 代表其为回文结构,false 代表不是。思路:1.先找到中间结点,然后以中间结点为头节点,逆置链表后半部分2.然后遍历两个链表 当两个链表对应结点的值都相等时,说明是回文链表完整调试程序:时间复杂度:O(n)...原创 2019-08-03 15:56:06 · 318 阅读 · 0 评论 -
Java找两个交叉链表的公共结点
要求:找出两个交叉链表的公共结点,返回结点值思路:1.先计算这两个交叉链表的长度2.假定较长链表和较短链表3.让长一点的链表先遍历比短的链表多处的那部分;然后两个一起遍历直到 longList == shortList*/完整调试程序:时间复杂度:O(n)...原创 2019-08-04 10:20:12 · 396 阅读 · 0 评论 -
Java寻找链表的中间结点,若有两个返回较后一个
思路:通过双引用遍历链表:用slow遍历链表时,让另一个引用fast的速度为slow的两倍,则当快的引用到达尾部时,慢的刚好位于中间。初始的位置都为head,当fast指向null时,slow的位置就是中间结点的位置。时间复杂度:O(n),其中n是列表结点的数目空间复杂度:O(1), 就是fast和slow拥有去的空间完整调式程序:...原创 2019-07-28 15:48:42 · 136 阅读 · 0 评论 -
Java寻找链表的倒数第k个结点
思路一:遍历整个链表求出链表长度(length);用 length - k 得出从 head 遍历到倒数第 k 个结点位置的长度 n - 1;再从头遍历链表到最后一个结点就是倒数第 k 个结点的位置。完整调试程序:空间复杂度:O(n)思路二:用两个引用,让第一个引用(front)和第二个引用(cur)都指向头结点,让front先走 k - 1步,到达第 k 个结点;然后两个引用同时往后...原创 2019-07-29 16:08:10 · 230 阅读 · 0 评论 -
Java合并两个有序链表
要求:给出链表 1 → 1 → 2 → 3 → null 和 1 → 2 → 4 → 6 → null;要求输出结果为1 → 1 →1 → 2 → 2 → 3 → 4 → 6 → null思路:用两个引用 cur1 和 cur2 同时遍历两个链表;当 cur1.value 小于或者等于 cur2.value 时,把 cur1 尾插到结果链表 resultList 上;在尾插时需要分结果链表...原创 2019-07-31 13:11:13 · 302 阅读 · 0 评论 -
Java部分基础知识点
关于java的一些基础知识:1、在java中 有类(class)和方法(method),方法和c语言中的函数是一样的只不过是叫法不同2、java支持4种变量:1)、属性(filed) 实例变量(instance variable) 允许有默认值2)、静态属性 (static filed) 类变量 (class variable)3)、局部变量 (local va...原创 2019-05-13 17:09:49 · 191 阅读 · 0 评论