关闭
当前搜索:

[置顶] 两年Java开发工作经验面试总结

前言: 最近换了个公司,从三月底开始面,面到四月底,面了有快二十家公司。我是一个喜欢总结经验的人,每经过一场面试,我在回来的路上都会仔细回想今天哪些问题可以答的更好,或者哪些问题是自己之前没遇到过的,或者是哪个知识点今天又问了等等。四月中旬的时候,我就在构思要写一篇面经,主要是想着可能对那些跟我相同处境的人有点帮助,再者就是稍微记录下这为期一个月的面试过程。 本文地址:http://blog....
阅读(19953) 评论(24)

[置顶] MyEclipse使用Maven创建web项目+搭建SSM框架教程

动机 使用maven已经有一段时间了,但项目是别人搭建好的,因此一直想着自己要学习搭建一下。网上找了些资料后,结合自己实验,花了点时间就搞好,老样子,写在博客上,免得日后忘记。 本文链接:http://blog.csdn.net/v123411739/article/details/50742885 博文中的代码链接:https://pan.baidu.com/s/1mjsJNz6 密码:s...
阅读(44317) 评论(60)

[置顶] Eclipse中使用SVN

概述 在我们的日常工作中,经常会用到SVN,大多数都是搭配Eclipse/MyEclipse使用。本文主要介绍SVN在Eclipse中的一些最长用的功能,包括SVN插件的下载使用、上传代码到服务器、从服务器下载代码、从服务器更新代码、解决代码冲突。 本文链接:http://blog.csdn.net/v123411739/article/details/22512133 1.在Ecl...
阅读(182328) 评论(37)

Java并发:Condition详解

概述任意一个Java对象,都拥有一组监视器方法(定义在java.lang.Object上),主要包括wait()、wait(long timeout)、notify()以及notifyAll()方法,这些方法与synchronized同步关键字配合,可以实现等待/通知模式。Condition接口也提供了类似Object的监视器方法,与Lock配合可以实现等待/通知模式,但是这两者在使用方式以及功能......
阅读(24) 评论(0)

Java并发:AbstractQueuedSynchronizer详解(独占模式)

概述AQS(AbstractQueuedSynchronizer)是一个用于构建锁和同步器的框架,许多同步器都可以通过AQS很容易并且高效地构造出来。不仅ReentrantLock和Semaphore是基于AQS构建的,还包括CountDownLatch、ReentrantReadWriteLock、SynchronousQueue和FutureTask。AQS解决了在实现同步器时涉及的大量细节问......
阅读(39) 评论(0)

Java集合:LinkedList详解

概述 本来就LinkedList的几个主要方法主要介绍,并结合几个图片来介绍几个重要操作。 基础属性 transient int size = 0; // 节点数量 /** * Pointer to first node. * Invariant: (first == null && last == null) || * (first.prev ==...
阅读(44) 评论(0)

Java集合:ArrayList详解

概述 ArrayList是我们日常中最长用的集合之一,在使用列表时,除非特殊情况,我们一般都会选择使用ArrayList,本文就ArrayList的几个主要方法主要介绍,并结合几个图片来介绍几个重要操作。 基础属性 /** * Default initial capacity. */ private static final int DEFAULT_CAPACITY = 10...
阅读(39) 评论(0)

Java并发:性能与可伸缩性

概述 编写正确的程序很难,而编写正确的并发程序则难上加难。与串行程序相比,在并发程序中存在更多容易出错的地方。那么,为什么还要编写并发程序?线程是Java语言中不可或缺的重要功能,它们能使复杂的异步代码变得更简单,从而极大地简化了复杂系统的开发。此外,要想充分发挥多处理器系统的强大计算能力,最简单的方式就是使用线程。随着处理器数量的持续增长,如何高效地使用并发正变得越来越重要。 线程的最主...
阅读(40) 评论(0)

Java并发:同步工具类详解(CountDownLatch、CyclicBarrier、Semaphore)

概述 同步工具类可以是任何一个对象,只要它根据其自身的状态来协调线程的控制流。阻塞队列可以作为同步工具类,其他类型的同步工具类还包括信号量(Semaphore)、栅栏(Barrier)以及闭锁(Latch)。本文就目前常用的3种同步工具类进行简单介绍。 闭锁 闭锁是一种同步工具类,可以延迟线程的进度直到其到达终止状态。闭锁的作用相当于一扇门:在闭锁到达结束状态之前,这扇门一直是关闭的...
阅读(44) 评论(0)

Java并发:线程池详解(ThreadPoolExecutor)

前言 现在在实现异步时,基本都是使用线程池来实现,线程池在工作应用的还是比较频繁的,本文将就线程池的使用、相关原理和主要方法源码进行深入讲解学习。 线程池的基本使用 package com.joonwhee.concurrent; import java.util.ArrayList; import java.util.List; import java.util.concur...
阅读(87) 评论(0)

Java并发:InheritableThreadLocal详解

概述 最新看项目代码时, 发现有地方用到了InheritableThreadLocal,之前只用过ThreadLocal,于是就查了点资料,看了下源码,稍微学习一下。 InheritableThreadLocal是ThreadLocal的子类,可以先了解下ThreadLocal:Java并发:ThreadLocal详解 1.InheritableThreadLocal的定义 I...
阅读(50) 评论(0)

如何养成学习的习惯

前言 希望本文能帮助到一些人逐渐养成学习的习惯。 本文面向的人 已经很勤奋的学习,但是觉得效率不高。偶尔心血来潮(可能是听到某个励志故事或者听了一首令人亢奋的歌曲)会进行学习,但无法长期坚持。基本没有在业余时间学习,但内心有一颗想学习的心/想变强的心/想证明自己的心/不想让人瞧不起自己的心/希望自己的工作能更上一步的心等。 为何学习难以坚持? 我想是因为学习的...
阅读(78) 评论(0)

Java虚拟机:虚拟机类加载机制

概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 与那些在编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java里天生可以动态扩展的语...
阅读(53) 评论(0)

Java集合:HashMap详解(JDK 1.8)

概述 JDK 8对HashMap进行了比较大的优化,底层实现由之前的数组+链表改为数组+链表+红黑树,本文就HashMap的几个主要方法和Jdk 1.8之前的死循环问题展开学习讨论。JDK 8的HashMap的数据结构如下图所示,当链表节点较少时仍然是以链表存在,当链表节点较多时(大于8)会转为红黑树。 本文地址:http://blog.csdn.net/v123411739/arti...
阅读(126) 评论(0)

Java并发:线程安全与锁优化

概述 人们很难想象现实中的对象在一项工作进行期间,会被不停地中断和切换,对象的属性(数据)可能会在中断期间被修改和变“脏”,而这些事情在计算机世界中则是很正常的事情。有时候,良好的设计原则不得不向现实做出一些让步,我们必须让程序在计算机中正确无误地运行,然后再考虑如何将代码组织得更好,让程序运行更快。对于“高效并发”来说,首先需要保证并发的正确性,然后在此基础上实现高效。 1.线程安全...
阅读(52) 评论(0)

Java并发:Java内存模型(JMM)与线程

概述 多任务处理在现代计算机操作系统中几乎已是一项必备的功能了。在许多情况下,让计算机同时去做几件事情,不仅是因为计算机的运算能力强大了,还有一个很重要的原因是计算机的运算速度与它的存储和通信子系统速度的差距太大,大量的时间都花费在磁盘I/O、网络通信或者数据库访问上。如果不希望处理器在大部分时间里都处于等待其他资源的状态,就必须使用一些手段去把处理器的运算能力“压榨”出来,否则就会造成很大的浪...
阅读(70) 评论(0)

Java虚拟机:内存分配与回收策略

概述 Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。关于回收内存这一点,我们已经使用了大量篇幅去介绍虚拟机中的垃圾收集器体系以及运作原理,现在我们再一起来探讨一下给对象分配内存的那点事儿。 对象的内存分配,往大方向讲,就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接地栈上分配),对象主要分配在新生代的Eden区...
阅读(96) 评论(0)

Java虚拟机:垃圾收集原理和垃圾收集器

概述 垃圾收集需要完成的3件事情:哪些内存需要回收?什么时候回收?如何回收? 目前内存的动态分配与内存回收技术已经相当成熟,一切看起来都进入了“自动化”时代,那为什么我们还要去了解GC和内存分配呢?答案很简单:当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。 Java内存运行时区域的各个部分,其中...
阅读(170) 评论(0)

Java虚拟机:Java内存区域

动机 最近一段时间细读了周志明的《深入理解Java虚拟机》,加上近期自己要在组内进行知识分享,于是打算把分享的主题就定为JVM方面的,在制作PPT的过程,反复把此书翻了不少遍,于是想着顺便整理出一份笔记供大家学习。由于自己的水平有限加上为了保证内容的准确性,因此文章大部分内容取自此书的原内容,少部分内容为从知乎R大和其他对JVM有深入理解的人学习而来。 文章地址:http://blog.csd...
阅读(79) 评论(0)

Java并发:ThreadLocal详解

前言 ThreadLocal相信大家都不陌生,本文就ThreadLocal源码的几个主要方法和应用展开详细讲解。 本文地址:http://blog.csdn.net/v123411739/article/details/78697099 1.ThreadLocal的定义 这个类提供了线程局部变量。 这些变量与正常的变量不同,因为每个访问一个线程的线程(通过它的get或set...
阅读(119) 评论(0)

jstat命令详解

Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。 jstat工具特别强大,有众多的可...
阅读(121) 评论(0)

Java集合:ConcurrentHashMap详解

前言 近期深入学习了ConcurrentHashMap,便整理成一篇博文记录一下,请注意:此博文针对的是JDK1.6,因此如果你看到的源码跟我文中的不同,则可能是由于版本不一样。 ConcurrentHashMap的锁分段技术 HashTable容器在竞争激烈的并发环境下表现出效率低下的原因,是因为所有访问HashTable的线程必须竞争同一把锁。如果容器里有多把锁,每一把锁...
阅读(586) 评论(0)
127条 共7页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:916867次
    • 积分:5736
    • 等级:
    • 排名:第5383名
    • 原创:114篇
    • 转载:13篇
    • 译文:0篇
    • 评论:210条
    联系我