java高级
介绍java中一些高级知识点
是宇哥啊
叩首问路 码梦为生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关于页表过长的一些思考
1. 页表的作用虚拟内存是的,操作系统需要把映射到。这个映射关系就存储在中。每个进程都有自己的页表,每一页对应一个页表项(PTE,Page Table Entry)。原创 2025-09-24 19:34:26 · 393 阅读 · 0 评论 -
动态分区会产生外部碎片的理解
类型分配方式碎片类型原因固定分区内存块固定内部碎片分区固定,进程可能用不满动态分区按需分配外部碎片内存连续分配,释放后空闲分散记忆小技巧内部碎片→ “内部空闲,分区太大”外部碎片→ “外面零散空闲,拼不起来”原创 2025-09-24 19:24:45 · 470 阅读 · 0 评论 -
关于进程死锁
老教材讲「进程死锁」,因为那时进程是主要并发单位;新教材讲「线程死锁」,因为现在线程才是调度和同步的主体;本质都是。原创 2025-09-24 19:03:35 · 330 阅读 · 0 评论 -
Android中开一个线程是ULT还是KLT
我们分几个层次来讲清楚和,再结合到。原创 2025-09-24 18:09:59 · 606 阅读 · 0 评论 -
java注解(上篇)
接近一个月没有分享博客了,今天晚上睡的很早,差不多七点多就睡着了,然后睡醒了就很人间清醒。最近为什么这么长时间没有去分享呢,是因为一直在筹划一件事情。个人准备从8月份开始在腾讯课堂讲课啦,当然目的不是为了赚钱哦。是为了顺便带带有需求的同学,也让自己获得一些成长吧。好了,话不多说,进入今天的主题。我们好多同学在面试或者考核环节会遇到这样的问题,被认为没有架构能力。今天要讲的东西就被大量运用在各种开源框架中间。1.注解的定义首先,什么是注解?我的理解注解就是一种标志位。就是给方法或者类打上.原创 2021-07-31 04:14:26 · 222 阅读 · 0 评论 -
java泛型(下篇)
时间真的是很快,又到了周末,又到了每周分享的时刻。本周将继续讲解java的泛型,上周分享的文章貌似效果不是很好。本周呢还是会继续下去,如果看的人不是很多就当作自己的一个学习笔记吧。首先我们来看一个东西,泛型继承:1.泛型继承规则public class A {}public class B extends A {}public class Pair<T> {}我们先定义一个类A,然后再定义一个类B,我们让B继承A。再定义一个泛型类Pair。我们使用原创 2021-06-27 01:47:06 · 191 阅读 · 2 评论 -
java泛型(上篇)
又到了一周一次的开车时刻,为什么要一周一次,这个是有科学讲究的。虽然我们还很年轻,但开车也不宜过多,要注意身体。这一周以来啊,吃的挺好,喝的也不错,肉没长多少,甚是欣慰。前几天我就在想zhe yi z...原创 2021-06-20 02:04:37 · 168 阅读 · 0 评论 -
线程池原理
为什么要用线程池?1.降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。2.提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。 如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。线程池技术正是关注如何缩短或调整T1,T3时间的技术,从而提高服务器程序性能的。它把T1,T3分别安排在服务器程序的启动和结束的时间段或者一些空闲的时间段,这样原创 2021-01-30 21:51:26 · 308 阅读 · 0 评论 -
悲观锁和乐观锁
悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。Java中synchronized就是悲观锁思想的实现。乐观锁总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制和CAS算法实现。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提原创 2021-01-30 20:26:25 · 166 阅读 · 0 评论 -
线程拓展(join用法)
我们一起来看一张图:如何让出当前线程的执行权yield()方法,只在JDK某些内部实现才能看到,是让出执行权,基本用不到。让出之后变成可运行状态。join方法t.join()方法只会使主线程(或者说调用t.join()的线程)进入等待池并等待t线程执行完毕后才会被唤醒。并不影响同一时刻处在运行状态的其他线程。分析:package CSDN;public class TestJoin { public static void main(String[] args) thr原创 2021-01-30 17:43:38 · 225 阅读 · 0 评论 -
线程与进程
什么是进程和线程?进程是程序运行资源分配的最小单位进程是操作系统进行资源分配的最小单位,其中资源包括:CPU、内存空间、磁盘IO等,同一进程中的多条线程共享该进程中的全部系统资源,而进程和进程之间是相互独立的。进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是死的、静态的,进程是活的、动态的。进程可以分为系统进程和用户进程。凡是用于完成操作系统...原创 2021-01-30 14:13:28 · 246 阅读 · 0 评论 -
ArrayList的数据结构
ArrayList本质上是一个动态数组,第一次添加元素时,数组大小将变化为DEFAULT_CAPACITY 10,不断添加元素后,会进行扩容。删除元素时,会按照位置关系把数组元素整体(复制)移动一遍。原创 2021-01-12 22:08:24 · 464 阅读 · 0 评论 -
String、StringBuffer、StringBuilder
1.String是final类,不能被继承。对于已经存在的Stirng对象,修改它的值,就是重新创建一个对象2.StringBuffer是一个类似于String的字符串缓冲区,使用append()方法修改Stringbuffer的值,使用toString()方法转换为字符串,是线程安全的3.StringBuilder用来替代于StringBuffer,StringBuilder是非线程安全的,速度更快...原创 2021-01-12 22:02:29 · 151 阅读 · 0 评论 -
java中ClassLoader详解
问题:调用String.class.getClassLoader(),会返回null,为什么?Bootstrap ClassLoader是由C++编写的。Bootstrap ClassLoader是由C/C++编写的,它本身是虚拟机的一部分,所以它并不是一个JAVA类,也就是无法在java代码中获取它的引用,JVM启动时通过Bootstrap类加载器加载rt.jar等核心jar包中的class文件,int.class,String.class都是由它加载。然后呢,我们前面已经分析了,JVM初始化..原创 2021-01-12 21:58:53 · 232 阅读 · 0 评论 -
JVM工作流程
简单地说:就是.java文件通过编译器编辑成.class文件,.class文件通过类加载器加载到内存中。下面重点来讲一讲JVM的内存模型:就是我们常说的栈,堆,方法区。Java堆此内存区域唯一的目的就是存放对象实例,几乎所有的对象都在这分配内存本地方法栈 与VM栈发挥的作用非常相似,VM栈执行Java方法(字节码)服务,Native方法栈执行的是Native方法服务java虚拟机栈Java方法执行的内存模型,每个方法执行的时候,都会创...原创 2021-01-12 21:18:12 · 334 阅读 · 0 评论 -
static关键字(java)
static关键字修饰的方法或者变量可以直接通过类名来访问;static关键字修饰的变量在内存中只有一个副本,仅在类被加载时初始化;static关键字不允许修饰局部变量;可以通过this访问静态成员变量。...原创 2021-01-11 21:27:47 · 109 阅读 · 0 评论 -
volatile关键字详解
我们经常这样写单例模式:public class LzySingleInstance { public static volatile LzySingleInstance lzySingleInstance; private LzySingleInstance(){ } public static LzySingleInstance getLzySin...原创 2019-12-30 14:26:28 · 200 阅读 · 0 评论 -
java高级 - 泛型
泛型在我们的日常开发中经常会用到,一般可以分为两大类:01.类泛型ArrayList<String> arrayList = new ArrayList<>();arrayList.add("lzy");这样类型就被限定死了!02.方法泛型protected <T extends View> T findId(int resId) {...原创 2019-12-17 16:08:40 · 159 阅读 · 0 评论 -
java高级 - 注解
/** * Created by Michael on 2019/12/17. * @interface代表注解 */@Target(ElementType.FIELD) //放到哪里,这里代表放到属性上面@Retention(RetentionPolicy.RUNTIME) //什么时候起作用 .RUNTIME运行时 .CLASS编译时public @interface View...原创 2019-12-17 15:36:22 · 163 阅读 · 0 评论 -
java高级 - 反射02
我们来看一个类:public class LzyBean { private String name; public LzyBean(String name){ this.name = name; } private void getTag(){ Log.e("lzy","getTag()被调用了!"+name); ...原创 2019-12-17 14:50:53 · 139 阅读 · 0 评论 -
java高级 - 反射01
我们一起来看一个类:public class LzyBean { private String name; public LzyBean(){ } public void getTag(){ Log.e("tag","hello"); }}我们可以通过以下方法创建对象:public class MainActivi...原创 2019-12-17 14:40:31 · 130 阅读 · 0 评论
分享