
java
文章平均质量分 57
xingshangyy
这个作者很懒,什么都没留下…
展开
-
JAVA面试八股文
Java 知识总结手册 链接:https://pan.baidu.com/s/1P-jPY0_Yi7b2aYsEPZ8PjA 密码:1ckn Java 生态知识体系/面试必看资料 链接: https://pan.baidu.com/s/1z_gLfJoueXFRwcSYRKaTug 提取码: 3vke Java-华山版手册 链接:https://pan.baidu.com/s/16MeBAzVjYWy740VhDkpH7g 密码:6i2w Java 面试手册 链接:https://pan.baidu.com原创 2021-10-12 18:46:19 · 937 阅读 · 1 评论 -
带你吃透二叉树对称性递归算法
前言 leetcode上有非常多的二叉树相关的算法题,而这类题目,大多可以使用递归的方式解决,不知道大家发现没有,应用于二叉树算法中的递归,大多具有对称性,也就是对称性递归(symmetric recursion)。 实战 题型分析 二叉树问题中的判断类问题大多可以使用对称性递归解决,具体可分为以下两种: 1.不需要构造函数(直接递归方法本身即可解决问题) 这类题目大多为单树问题,只需对树本身进行处理,力扣题目举例: 100. 相同的树 226. 翻转二叉树 104. 二叉树的最大深度 110. 平衡二叉树原创 2021-08-19 15:25:33 · 227 阅读 · 0 评论 -
什么是死锁?
定义 指的是多个进程在执行过程中,抢占资源和通信时产生的阻塞现象,此时若无外力作用,它们都将无法继续执行。 死锁原因 (1)多个进程执行顺序不当(例如:p1进行需要先运行R1,再运行R2,而p2进程需要运行R2,再运行R1,当p1运行到R1,获取R2时发现R2已被占用,p2运行到R2,获取R1发现R1被p1占用,此时就出现了死锁) (2)相互抢占资源(例如进程A抢占了不可剥夺的资源C,进程B想要使用资源C,只能够等待进程A主动释放) 死锁产生的必要条件 (1)互斥条件:资源每次只能被一个进程所占用。 (2原创 2021-08-11 15:30:03 · 102 阅读 · 0 评论 -
进程和线程的区别(一)
简介 进程(Process) 进程是程序的实体,是系统进行资源调度的基本单位,同时进程也是线程的容器。 线程(thread) 是操作系统能够进行运算调度的最小单位,它存在于进程之中,一个进程可以包含多个线程, 每条线程可以执行不同的任务。 结构 进程构成(线程+内存+文件/网络句柄) 线程(栈+PC+TLS) 通信 进程间的通信共有七种方式: 1.管道pipe,管道是一种半双工的通信方式,有固定的读端和写端,只能应用于父子进程和兄弟进程。 2.fifo命名管道,和pipe类似,区别点在于它允许任何进程原创 2021-08-10 21:56:39 · 106 阅读 · 0 评论 -
java面试题(一)
java基础 1.string和stringbuffer和stringbuilder的区别? string是字符串常量,每次操作会重新开辟新的内存空间; stringbuffer是字符串变量,每次操作使用初次开辟的内存空间(类似于java的string,存在一个字符串缓冲区;同时它是线程安全的) stringbuilde是字符串变量,使用方法和buffer类似,但是非线程安全。 2.sleep() 区间wait()区间有什么区别? sleep属于thread,不释放锁;wait属于object,释放锁和次线原创 2021-08-10 11:40:15 · 102 阅读 · 0 评论 -
java赋值和New String()区别
java中对于字符串,有两种存储方式:1.字符串对象存储在常量池中(stringtable);2.字符串存储在堆内存中。 一.常量池 字符串的分配,和其他的对象分配一样,耗费高昂的时间与空间代价,作为最基础的数据类型,大量频繁的创建字符串,极大程度地影响程序的性能。JVM为了提高性能和减少内存开销,在实例化字符串常量的时候进行了一些优化为字符串开辟一个字符串常量池,类似于缓存区创建字符串常量时,首先查询字符串常量池是否存在该字符串存在该字符串,返回引用实例,不存在,实例化该字符串并放入池中。 二.字符串的三原创 2021-08-09 21:01:11 · 118 阅读 · 0 评论 -
手把手教你java程序调试
编辑器: intelliJIDEA 版本:java1.8 调试快捷键: F8:下一行 F9:下一个断点 F7:进入方法 接下来调试开始 第一步:构建方法nowFormatDate 第二步:构建单元测试方法testString4Date,构建假数据 调用调试方法nowFormatDate 第三步:构建单元测试testString4Date 在代码行号之后空白处点击左键,出现红色圆点标识断点成功 第四步:在nowFormatDate方法中增加断点 第五步:鼠标放置在testString4Date方法名上原创 2020-09-10 18:49:44 · 1144 阅读 · 0 评论