自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

又要起名

菜鸟

  • 博客(21)
  • 问答 (3)
  • 收藏
  • 关注

转载 java中进程和线程以及线程的状态和方法

进程是cpu资源分配的最小单位,线程是cpu调度的最小单位。一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用...

2018-10-13 19:56:06 416

原创 JVM堆

VM 堆内存组成Java堆由Perm区和Heap区组成,Heap区由Old区和New区(也叫Young区)组成,New区由Eden区、From区和To区(Survivor)组成。Eden区用于存放新生成的对象。Eden中的对象生命不会超过一次Minor GC。Survivor Space  有两个,存放每次垃圾回收后存活的对象,即图的S0和S1。Old Generation  O...

2018-10-13 19:35:50 365

转载 排序算法总结

比较类非线性时间排序:交换类排序(快速排序和冒泡排序)、插入类排序(简单插入排序和希尔排序)、选择类排序(简单选择排序和堆排序)、归并排序(二路归并排序和多路归并排序)。 非比较类线性时间排序:计数排序、基数排序、桶排序。排序就是将一组对象按照某种逻辑顺序重新排列的过程。比如信用卡账单中的交易是按照日期排序的——这种排序很可能使用了某种排序算法。在计算时代早期,大家普遍认为30%的计算周期都用...

2018-10-11 20:15:54 188

转载 synchronized

synchronized的三种应用方式synchronized关键字最主要有以下3种应用方式,下面分别介绍 修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁 修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁 修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。 synchronized作用于实例方法...

2018-10-08 22:33:36 153

原创 java的内存回收机制

如何确定一个对象是否可以被回收?1、 引用计数算法:判断对象的引用数量2、 可达性分析算法:判断对象到GC Root引用链是否可达ps:c++中解决循环引用的方法:1. 当只剩下最后一个引用的时候需要手动打破循环引用释放对象。2. 当A的生存期超过B的生存期的时候,B改为使用一个普通指针指向A。3. 使用弱引用的智能指针打破这种循环引用。虽然这三种方法都可行,但方法1和方法2都需...

2018-10-08 16:44:13 124

原创 双亲委派

预定义类加载器和双亲委派机制 JVM预定义的三种类型类加载器: 启动(Bootstrap)类加载器:是用本地代码实现的类装入器,它负责将 <Java_Runtime_Home>/lib下面的类库加载到内存中(比如rt.jar)。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作。 标准扩展(Extension)...

2018-10-08 10:52:30 175

原创 B树(B-树)与B+树与红黑树

B树是为实现高效的磁盘存取而设计的多叉平衡搜索树。这个概念在文件系统,数据库系统中非常重要。当然,有关于B树的产生,发展,结构等等方面的介绍已经非常详细,所以本文只是介绍有关于B树和B+树最核心的知识点,也算是我本人的学习笔记。至于详细的资料,因为毕竟有着太多,所以不再赘述。可以向大家推荐一篇博客:从B树、B+树、B*树谈到R 树,这篇文章中,作者对于B树系列数据结构的讲解非常详细,我的这篇博客,...

2018-10-03 10:25:17 2127 1

转载 ConcurrentHashMap 1.8版本介绍

《Java源码分析》:ConcurrentHashMap JDK1.8最近一直在看关于J.U.C中的源码,了解原子操作,了解锁机制,了解多线程并发等等。但是ConcurrentHashMap一直拖着到今天才算告一段落。也要感谢ConcurrentHashMap这个类,刚开始就是想弄懂里面的工作原理,但是,无奈看了网上关于介绍ConcurrentHashMap这个类的资料或博客都是基于JDK...

2018-10-02 11:17:19 3645 2

转载 java动态代理相关

AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执行。不同的切入时机对应不同的Interceptor的种类,如BeforeAdviseInterceptor,AfterAdviseInterceptor以及ThrowsAdviseIntercepto...

2018-10-01 23:13:15 259

原创 Spring相关知识

Spring中创建Bean的几种方式Spring框架下,Bean的创建和装配非常的灵活,提供了三种主要的方式,并且相互见可以互相看见,也就是你可以随意地采用你喜欢且合适的方式创建Bean,而不用担心他们之间的兼容问题。    一、使用XML显示配置Bean        在Spring框架最初的是,XML是最主要的配置方式。在XML中创建Bean需要使用<bean>元素,例...

2018-09-28 16:45:13 173

原创 java中的AQS(abstractQueuedSynchrogazer)

 我们来看下java.util.concurrent.locks大致结构上图中,LOCK的实现类其实都是构建在AbstractQueuedSynchronizer上,为何图中没有用UML线表示呢,这是每个Lock实现类都持有自己内部类Sync的实例,而这个Sync就是继承AbstractQueuedSynchronizer(AQS)。为何要实现不同的Sync呢?这和每种Lock用途相关。另外...

2018-09-28 15:06:49 129

原创 阻塞队列

1.什么是阻塞队列阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。BlockingQueue有两个常见阻塞场景当队列中没有数据的情况下,消费者端的所有线程都会被自动阻塞(挂起),直到有数据放入队列。这里写图片描述当队列中填满数据的情况下,生产者端的所有线程都会被自动...

2018-09-28 10:15:01 86

原创 java线程池相关

一、ThreadPoolExecutor的重要参数 1、corePoolSize:核心线程数 * 核心线程会一直存活,及时没有任务需要执行 * 当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理 * 设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关闭 2、que...

2018-09-28 09:01:57 134

原创 个人博客网站优化方向

       本来想服务器,域名,项目,部署都写下来,因为我搭的时候迷茫了很久也犯了不少错,,结果不知道哪里不和谐了。。怎么改都被删除。白写那么多也没办法了。写写网站之后的优化思路吧。以后自己的网站上写就没人来审核文章了吧= =一、前端        因为1.0版本我是觉得自己稍微看一下前端框架bootstrap能做个差不多就行了,但是自己做的丑爆了。。像上个世纪的网页。看别人的个人网...

2018-08-28 11:37:38 1176

原创 JAVA后端相关书籍推荐

最近总结面试以及看面经以及自己学习的过程中发现以前看过的很多书其实都讲过,不过有很多都很容易忘。主要还是实际用到的少,遗忘曲线吧。。推荐一些书感觉很不错。我自己也基本都看过,虽然不一定都记得很清楚。。下面推荐顺序是我觉得比较好的阅读顺序。。《JAVA核心技术 卷一》讲的都是基础也比较清楚,中间关于Swing的内容应该不用看很认真。大概知道怎么用就好,毕竟除了学校好像基本没什么地方会用到。不...

2018-08-23 11:19:27 1920

转载 java的Native方法

    今天看《深入理解JAVA虚拟机》感觉自己好像跳过了什么重要的知识= =好多东西只能看懂大概不能完全理解。。可能还是写的demo程序太小了。。涉及不到复杂的底层操作。和《JAVA并发编程实战》一样有的乱。。看到不懂的就查下来吧一. 什么是Native Method   简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个j...

2018-07-10 21:35:14 586

转载 java中部分集合知识总结

集合框架(collections framework)首先要明确,集合代表了一组对象(和数组一样,但数组长度不能变,而集合能)。Java中的集合框架定义了一套规范,用来表示、操作集合,使具体操作与实现细节解耦。其实说白了,可以把一个集合看成一个微型数据库,操作不外乎“增删改查”四种操作,我们在学习使用一个具体的集合类时,需要把这四个操作的时空复杂度弄清楚了,基本上就可以说掌握这个类了。设计理念主要...

2018-05-17 15:24:29 197

原创 java核心技术卷一第八章部分知识总结

因为看书的时候对这部分知识没太看懂。网上查了一下才明白。书上讲的有点乱。还是喜欢c++ primer这种书= =感觉写的比较清楚。8.5 泛型代码类型擦除:虚拟机没有泛型对象,在定义一个泛型类型时,会自动提供其相对应的原始类型,即擦去类型变量,如果是限定的类型变量,则用第一个限定类型的代替,如果是无限定的类型变量,则用Object代替。//Pair<T>的原始类型:public cl...

2018-05-06 16:47:29 352

原创 java API中提供的常用的函数式接口

PredicatesPredicate是一个布尔类型的函数,该函数只有一个输入参数。Predicate接口包含了多种默认方法,用于处理复杂的逻辑动词(and, or,negate)Predicate<String> predicate = (s) -> s.length() > 0;predicate.test("foo"); // true...

2018-05-05 22:18:45 661

转载 关于java中的反射

         反射是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性和方法。Java 的这一能力在实际应用中用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C 或者 C++ 中就没有办法在程序中获得函数定义相关的信息。        反射是 Java 被视为动态(或准动态)语言的关键,...

2018-05-05 15:13:09 111

原创 开始

    本来觉得写博客是很麻烦的事情。而且也没什么好写的。但是每次学习中不懂的东西都去谷歌看过了不一定能记很久,以后甚至连自己忘了都不知道。就开始把所有学习过程中不懂的东西都写下来吧。方便以后看。不过自己还是菜鸟,要学的东西也很多,写的东西查到的东西可能又的是错的,希望路过看到的人可以多指教。...

2018-05-05 14:53:36 114 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除