- 博客(44)
- 资源 (12)
- 收藏
- 关注
原创 Java静态内部类的作用
在一个类中创建另外一个类,叫做成员内部类。这个成员内部类可以静态的(利用static关键字修饰),也可以是非静态的。由于静态的内部类在定义、使用的时候会有种种的限制。所以在实际工作中用到的并不多。 在开发过程中,内部类中使用的最多的还是非静态地成员内部类。不过在特定的情况下,静态内部类也能够发挥其独特的作用。 一、静态内部类的使用目的。 在定义内部类的时候,可以在其前面
2016-05-26 13:54:22 3899
原创 多线程之指令重排序
理解重排序 重排序通常是编译器或运行时环境为了优化程序性能而采取的对指令进行重新排序执行的一种手段。重排序分为两类:编译期重排序和运行期重排序,分别对应编译时和运行时环境。 在并发程序中,程序员会特别关注不同进程或线程之间的数据同步,特别是多个线程同时修改同一变量时,必须采取可靠的同步或其它措施保障数据被正确地修改,这里的一条重要原则是:不要假设指令执行的顺序,你无法预
2016-05-24 16:51:49 3713 1
转载 静态代码块,普通代码块,同步代码块,构造代码块和构造函数解
构造函数用于给对象进行初始化,是给与之对应的对象进行初始化,它具有针对性,函数中的一种。特点:1:该函数的名称和所在类的名称相同。2:不需要定义返回值类型。3:该函数没有具体的返回值。记住:所有对象创建时,都需要初始化才可以使用。注意事项:一个类在定义时,如果没有定义过构造函数,那么该类中会自动生成一个空参数的构造函数,为了方便该类创建对象,完成初始化。如果在类中自定义了构造函数,
2016-05-21 14:34:08 886
转载 JAVA多线程之中断机制(stop()、interrupted()、isInterrupted())
一,介绍本文记录JAVA多线程中的中断机制的一些知识点。主要是stop方法、interrupted()与isInterrupted()方法的区别,并从源代码的实现上进行简单分析。 JAVA中有3种方式可以终止正在运行的线程①线程正常退出,即run()方法执行完毕了②使用Thread类中的stop()方法强行终止线程。但stop()方法已经过期了,不推荐使用③使用中断机制
2016-05-21 11:43:25 597
原创 java遍历给定目录,树形结构输出所有文件,包括子目录中的文件
import java.io.File;public class ReadDirectory { // 文件所在的层数 private int fileLevel; /** * 生成输出格式 * @param name 输出的文件名或目录名 * @param level 输出的文件名或者目录名所在的层次 * @return
2016-05-21 11:07:13 2678
转载 面试感悟----一名3年工作经验的程序员应该具备的技能
前言因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结,因此有了这篇文章。这篇文章大部分内容都是面向整个程序员群体的,当然因为LZ本身是做Java开发的,因此有一部分内容也是专门面向咱们Java程序员的。简单先说一下,LZ坐标杭州,13届本科毕业,算上年前在阿里巴巴B2B事业部的面试,一共有面试了有6家公司(因为LZ不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比
2016-05-20 16:55:12 934
转载 面试之单例模式
单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那这篇文章可能会帮助到你。懒汉式,线程不安全当被问到要实现一个单例模式时,很多人的第一反应是写出如下的代码,包括教科书上也是这样教我们的。
2016-05-20 16:32:06 449
原创 静态代码块、构造代码块以及构造函数执行顺序实验
第一个例子:public class StaticDemo { { System.out.println("{} 代码块"); } static{ System.out.println("static 代码块"); } public static void main(String[] args) {
2016-05-20 15:32:53 866
原创 java通配符
Java泛型中的标记符含义: E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Number(数值类型)? - 表示不确定的java类型关键字说明● ? 通配符类型● 表示类型的上界,表示参数
2016-05-19 15:41:42 1486
转载 Java泛型
什么是泛型?泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。可以在集合框架(Collection framework)中看到泛型的动机。例如,Map 类允许您向一个 Map 添加任意类的对象,即
2016-05-19 14:36:54 426
转载 细说JAVA反射
Reflection 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。例如,使用它能获得 Java 类中各成员的名称并显示出来。JavaBean 是 reflection 的实际应用之一,它能让一些工具可视化的操作软件组件。这些工具通过 reflection 动态的载入并取得 Java 组件(类) 的属性。
2016-05-19 13:04:02 579
转载 危险!在HashMap中将可变对象用作Key
本文由 ImportNew - 刁 文阳 翻译自 java-fries。欢迎加入翻译小组。转载请见文末要求。本文中我们将会讨论在Java HashMap中将可变对象用作Key。所有的Java程序员可能都在自己的编程经历中多次用过HashMap。那什么是HashMap呢?HashMap是一种用哈希值来存储和查找键值对(key-value pair,也称作entry)的一种数据结构
2016-05-19 09:59:46 597
转载 69道Spring面试题和答案
译文出处: 深海 原文出处:Theodora FragkouliSpring 概述1. 什么是spring?Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。2. 使用S
2016-05-18 17:13:09 508
转载 详解java类的生命周期
原文出处: 卡奴达摩的专栏引言最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目前国内java方面的教材大多只是告诉你“怎样做”,但至于“为什么这样做”却不多说,所以造成大家在基础和原理方面的知识比较匮乏,所以笔者今天就斗胆来讲一下这个问题,权当抛砖引玉,希望对在这个问题上
2016-05-18 16:05:09 297
转载 Minor GC、Major GC和Full GC之间的区别
本文由 ImportNew - 光光头去打酱油 翻译自 javacodegeeks。欢迎加入翻译小组。转载请见文末要求。在 Plumbr 从事 GC 暂停检测相关功能的工作时,我被迫用自己的方式,通过大量文章、书籍和演讲来介绍我所做的工作。在整个过程中,经常对 Minor、Major、和 Full GC 事件的使用感到困惑。这也是我写这篇博客的原因,我希望能清楚地解释这其中的一些疑惑。
2016-05-18 16:01:40 407
原创 不同的垃圾回收器的比较以及使用调查
4款Java垃圾回收器——错误的选择导致糟糕的性能现在已经是2014年了,但是对大多数开发人员而言有两件事情仍然是个谜——垃圾回收以及异性(码农又被嘲笑了)。由于我对后者也不是特别了解,我想我还是试着说说前者吧,尤其是随着Java 8的到来,这个领域也发生了许多重大的变化及提升,其中最重要的莫过于持久代(PermGen)的删除以及一些令人振奋的新的优化(后面会陆续提及这些)。说起垃
2016-05-18 15:35:17 1295
转载 谁在关心toString的性能?
本文由 ImportNew - 无名侠女谭 翻译自 Antoniogoncalves.org。欢迎加入翻译小组。转载请见文末要求。谁在关心toString的性能?没有人!除非当你有大量的数据在批量处理,使用toString产生了许多日志。然后,你去调查为何如此之慢,才意识到大部分的toString方法使用的是introspection,它其实是可以被优化的。不过,首先让我们一起看看
2016-05-18 14:52:40 363
转载 浅谈Java中的equals和==
原文出处: 海 子在初学Java时,可能会经常碰到下面的代码:1String str1 = newString("hello");2String str2 = newString("hello");3 4System.out.println(str1==str2);
2016-05-18 14:36:43 320
转载 Java集合框架:ArrayList
原文出处: 朱小厮ArrayList定义123456789packagejava.util;publicclass ArrayList extendsAbstractList implementsList, R
2016-05-18 14:02:40 488
转载 java 反射机制
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。注意:反射是在运行的时候进行的,不是在编译的时候运行的。反射的功能Java反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类;在运行时构造任意一个类的
2016-05-16 17:42:58 261
原创 java反射技术详解
反射:其实就是动态的从内存加载一个指定的类,并获取该类中的所有的内容。反射的好处:大大的增强了程序的扩展性。 反射的基本步骤: 1. 获得Class对象,就是获取到指定的名称的字节码文件对象。 2. 实例化对象,获得类的属性、方法或构造函数。 3. 访问属性、调用方法、调用构造函数创建对象。一: 获取Class对象,有三种方式 :
2016-05-16 17:38:33 281
转载 Java基础知识总结
Java基础知识总结本博文内容参考相关博客以及《Java编程思想》整理而成,如有侵权,请联系博主。转载请注明出处:http://www.cnblogs.com/BYRans/PDF版下载链接:《Java基础知识总结》。如果您想在此基础上做一些修改,请联系dingyu.sdu@gmail.com,我把word原版发给您。查看具体文章,请点击原文链接:http://
2016-05-16 17:18:47 351
转载 面试大总结:Java搞定面试中的二叉树题目
转载自:http://blog.csdn.net/fightforyourdream/article/details/16843303这是本系列的第二篇,与前一篇 面试大总结之一:Java搞定面试中的链表题目 相比,二叉树的题目可以变化的就更多了。本文还是参考整合重写了《轻松搞定面试中的二叉树题目》和《算法大全(3) 二叉树》两篇大作。本文一个小亮点就是几乎每一道题都用了递归和迭代两种方法
2016-05-16 17:12:49 477
转载 链表面试题Java实现【重要】
【正文】这份笔记整理了整整一个星期,每一行代码都是自己默写完成,并测试运行成功,同时也回顾了一下《剑指offer》这本书中和链表有关的讲解,希望对笔试和面试有所帮助。OMG! 本文包含链表的以下内容: 1、单链表的创建和遍历 2、求单链表中节点的个数 3、查找单链表中的倒数第k个结点(剑指offer,题15) 4、查找单链表中的中间结
2016-05-16 17:09:58 601
原创 java Jvm工作原理学习笔记
一、 JVM的生命周期1. JVM实例对应了一个独立运行的java程序它是进程级别a) 启动。启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点b) 运行。main()作为该程序初始线程的起点,任
2016-05-16 16:57:28 514
转载 Java源码分析之LinkedList
LinkedList与ArrayList正好相对,同样是List的实现类,都有增删改查等方法,但是实现方法跟后者有很大的区别。先归纳一下LinkedList包含的API1、构造函数:①LinkedList() 起始没有元素②LinkedList(Collection collection) 用另一个集合构造LinkedList2、增加元素:①vo
2016-05-16 10:53:30 487
转载 Java源码分析之ArrayList
ArrayList是以数组为基准的容器类,和LinkedList(链表)正好相反。因而ArrayList拥有更好的查找性能,增删操作则差一些。ArrayList封装了对于常规数组的操作,同时可以自动扩展容量。下面对ArrayList的API进行归类:1、构造函数:①ArrayList() 以空数组进行构造 ②ArrayList(int) 以指定大小的容量初始化数
2016-05-16 10:52:17 356
原创 java类加载器深入研究
看了下面几篇关于类的加载器的文章,豁然开朗,分享一下,希望对大家有用。Java类加载原理解析 深入探讨 Java 类加载器分析BootstrapClassLoader/ExtClassLoader/AppClassLoader的加载路径 及"父委托机制"
2016-05-16 10:49:22 387
原创 Java基础必备
写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE相关的、和Java中各个框架相关的内容。 经过这么多年的Ja
2016-05-16 10:40:23 3445
转载 Java异常处理和设计
Java异常处理和设计 在程序设计中,进行异常处理是非常关键和重要的一部分。一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度。试想一下,如果一个项目从头到尾没有考虑过异常处理,当程序出错从哪里寻找出错的根源?但是如果一个项目异常处理设计地过多,又会严重影响到代码质量以及程序的性能。因此,如何高效简洁地设计异常处理是一门艺术,本文下面先讲述Java异常机制最基
2016-05-16 10:30:30 539
转载 Java 如何有效地避免内存溢出:善于利用软引用和弱引用
想必很多朋友对OOM(OutOfMemory)这个错误不会陌生,而当遇到这种错误如何有效地解决这个问题呢?今天我们就来说一下如何利用软引用和弱引用来有效地解决程序中出现的OOM问题。下面是本文的目录大纲: 一.了解 强引用、软引用、弱引用、虚引用的概念 二.进一步理解软引用和弱引用 三.如何利用软引用和弱引用解决OOM问题 如果有不正之处,希望谅解和批评指正
2016-05-16 10:17:47 3252
转载 Java虚拟机详解----GC算法和种类【重要】
转载自:http://www.cnblogs.com/smyhvae/p/4744233.html本文主要内容:GC的概念GC算法 引用计数法(无法解决循环引用的问题,不被java采纳) 根搜索算法 现代虚拟机中的垃圾搜集算法: 标记-清除 复制算法(新生代) 标记-压缩(老年代) 分代收
2016-05-15 23:01:22 1949
转载 Java虚拟机详解----JVM常见问题总结
本文转自:http://www.cnblogs.com/smyhvae/p/4810168.html面试必问关键词:JVM垃圾回收、类加载机制。 先把本文的目录画一个思维导图:一、Java引用的四种状态:强引用: 用的最广。我们平时写代码时,new一个Object存放在堆内存,然后用一个引用指向它,这就是强引用。 如果一个对象具有强引
2016-05-15 22:48:41 767
原创 HashMap和HashSet的区别和分析
HashSet定义HashSet实现了Set接口,它不允许集合中有重复的值,当我们提到HashSet时,第一件事情就是在将对象存储在HashSet之前,要先确保对象重写equals()和hashCode()方法,这样才能比较对象的值是否相等,以确保set中没有储存相等的对象。如果我们没有重写这两个方法,将会使用这个方法的默认实现。public boolean add(Objec
2016-05-15 17:22:27 7534 1
原创 Object类和String类equals方法的区别
String类的equals方法和“==”相信很多学习过Java的同学都知道,在比较两个String对象的内容是否相同时是使用equals方法的如:String str1=new String(“A”); String str2=new String(“B”); String str3=new String(“B”); boolean result1= str
2016-05-15 15:20:45 3498 1
转载 详细介绍Java内存泄露原因
一、Java内存回收机制 不论哪种语言的内存分配方式,都需要返回所分配内存的真实地址,也就是返回一个指针到内存块的首地址。Java中对象是采用new或者反射的方法创建的,这些对象的创建都是在堆(Heap)中分配的,所有对象的回收都是由Java虚拟机通过垃圾回收机制完成的。GC为了能够正确释放对象,会监控每个对象的运行状况,对他们的申请、引用、被引用、赋值等状况进行监控,Java会使用有向图的方
2016-05-15 13:49:16 338
转载 Java 内存区域和GC机制
Java垃圾回收概况 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代 码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。概括地说,该机制对 JVM(Java Virtual Mach
2016-05-13 17:09:51 440
转载 spring基础知识汇总及常见面试题目总结
Spring简介Spring框架由Rod Johnson开发,2004年发布了Spring框架的第一版。Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。Spring总结起来优点如下:低侵入式设计,代码的污染极低。独立于各种应用服务器,基于Spring框架的应用,
2016-05-12 23:13:41 1011
转载 浅析Java虚拟机结构与机制
本文旨在给所有希望了解JVM(Java Virtual Machine)的同学一个概念性的入门,主要介绍了JVM的组成部分以及它们内部工作的机制和原理。当然本文只是一个简单的入门,不会涉及过多繁杂的参数和配置,感兴趣的同学可以做更深入的研究,在研究JVM的过程中会发现,其实JVM本身就是一个计算机体系结构,很多原理和我们平时的硬件、微机原理、操作系统都有十分相似的地方,所以学习JVM本身也是加深自
2016-05-12 22:55:00 367
git、gitlab以及SourceTree介绍
2016-03-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人