
JAVA
文章平均质量分 69
BehandTheTime
这个作者很懒,什么都没留下…
展开
-
Java关键字final、static使用总结
一、final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 final类不能被继承,没有子类,final类中的方法默认是final的。 final方法不能被子类的方法覆盖,但可以被继承。 fi转载 2017-02-22 12:17:04 · 465 阅读 · 0 评论 -
深入理解 Java中的 流 (Stream)
最近在看《Hadoop:The Definitive Guide》,对其分布式文件系统HDFS的Streaming data access不能理解。基于流的数据读写,太抽象了,什么叫基于流,什么是流?Hadoop是Java语言写的,所以想理解好Hadoop的Streaming Data Access,还得从Java流机制入手。流机制也是JAVA及C++中的一个重要的机制,通过流使我们能够自由地操作转载 2017-02-20 10:33:04 · 605 阅读 · 0 评论 -
Object类的方法
protected Object clone()创建并返回此对象的一个副本。 boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。 protected void finalize()当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 Class getClass()返回此 Object 的运行时类。 in转载 2017-02-12 10:13:59 · 369 阅读 · 0 评论 -
JAVA必备基础知识点
Java基础1、 简述Java的基本历史java起源于SUN公司的一个GREEN的项目,其原先目的是:为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机、冰箱等 2、 简单写出Java特点,写出5个以上,越多越好简单的、面向对象的、分布式的、安全的、稳定的、与平台无关的、可解释的、多线的、动态的语言。 3、 什么是Ja转载 2016-12-30 16:01:32 · 455 阅读 · 0 评论 -
JAVA知识点总结
本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺(阅读本文需要有一定的Java基础;若您初涉Java,可以通过这些问题建立起对Java初步的印象,待有了一定基础后再后过头来看收获会更大)。 原文:http://blog.youkuaiyun.com/qq_35101189/article/det转载 2016-12-30 15:59:07 · 398 阅读 · 0 评论 -
JAVA多线程和并发基础面试问答
原文链接 译文连接 作者:Pankaj 译者:郑旭东 校对:方腾飞多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点)Java多线程面试问题1. 进程和线程之间有什么不同?一个进程是一个独立(self contai转载 2016-12-26 13:37:10 · 420 阅读 · 0 评论 -
Java NIO使用及原理分析 (四)
转载自:李会军•宁静致远在上一篇文章中介绍了关于缓冲区的一些细节内容,现在终于可以进入NIO中最有意思的部分非阻塞I/O。通常在进行同步I/O操作时,如果读取数据,代码会阻塞直至有 可供读取的数据。同样,写入调用将会阻塞直至数据能够写入。传统的Server/Client模式会基于TPR(Thread per Request),服务器会为每个客户端请求建立一个线程,由该线程单独负责处转载 2016-12-21 14:49:27 · 356 阅读 · 0 评论 -
Java NIO使用及原理分析(三)
转载自:李会军•宁静致远在上一篇文章中介绍了缓冲区内部对于状态变化的跟踪机制,而对于NIO中缓冲区来说,还有很多的内容值的学习,如缓冲区的分片与数据共享,只读缓冲区等。在本文中我们来看一下缓冲区一些更细节的内容。缓冲区的分配在前面的几个例子中,我们已经看过了,在创建一个缓冲区对象时,会调用静态方法allocate()来指定缓冲区的容量,其实调用 allocate()转载 2016-12-21 14:48:25 · 324 阅读 · 0 评论 -
Java NIO使用及原理分析 (一)
转载自:李会军•宁静致远最近由于工作关系要做一些Java方面的开发,其中最重要的一块就是Java NIO(New I/O),尽管很早以前了解过一些,但并没有认真去看过它的实现原理,也没有机会在工作中使用,这次也好重新研究一下,顺便写点东西,就当是自己学习 Java NIO的笔记了。本文为NIO使用及原理分析的第一篇,将会介绍NIO中几个重要的概念。在Java1.4之前的转载 2016-12-21 14:47:14 · 327 阅读 · 0 评论 -
Java NIO使用及原理分析(二)
转载自:李会军•宁静致远在第一篇中,我们介绍了NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如果我们使用get()方法从缓冲区获取数据或者使用put()方法把数据写入缓冲区,都会引起缓冲区状态的变化。本文为NIO使用及原理分析的第二篇,将会分析NIO中的转载 2016-12-21 14:46:02 · 301 阅读 · 0 评论 -
JAVA之TreeMap与红黑树详解
TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通过这篇博文你可以获得如下知识点: 1、红黑树的基本概念。 2、红黑树增加节点、删除节点的实现过程。 3、红黑转载 2016-12-15 18:48:33 · 986 阅读 · 1 评论 -
JAVA对象的创建过程
JAVA是一门面向对象的语言,在JAVA程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象(如克隆、反序列化)通常仅仅是一个new关键字而已,而在虚拟机中对象的创建过程是什么样的呢?虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程,在类加原创 2016-12-13 10:27:46 · 599 阅读 · 0 评论 -
JAVA对象创建方式
有4种显式地创建对象的方式:1.用new语句创建对象,这是最常用的创建对象的方式。2.运用反射手段,调用Java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。3.调用对象的clone()方法。4.运用反序列化手段,调用java.io.ObjectInputStream对象的readObje转载 2016-12-13 10:19:27 · 309 阅读 · 0 评论 -
JAVA内存区域
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。 一、程序计数器(寄存器)当前线程所执行的字节码行号指示器字节码解释器工作依赖计数器控制完成通过执行线程行号记录,让线程轮流切换各条线程之间计数器互不影响线程私转载 2016-12-13 09:21:01 · 318 阅读 · 0 评论 -
JVM类加载机制
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析、初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制从类被加载到虚拟机内存中开始,到卸载出内存为止,类的生命周期包括加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using原创 2016-12-12 10:51:19 · 402 阅读 · 0 评论 -
Jvm垃圾回收器总结
HotSpot JVM收集器框架 上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。Serial(串行GC)收集器Serial收集器是一个新生代收集器,单线程执行,使用复制算法。它在进行垃圾收集时,必须暂停其他所有的工作线程(用户线程)。是Jvm client模式下默原创 2016-12-09 14:19:26 · 498 阅读 · 0 评论 -
深入分析ClassLoader
why?ClassLoader,即Java类加载器,主要作用是将class加载到JVM内,同时它还要考虑class由谁来加载。在说java的类加载机制之前,还是像前面的博客一样,先说说为什么要知道java的类加载机制。个人认为主要有以下几个原因:按需加载。JVM启动时不能确定我要加载哪些东西,或者有些类非常大,我只希望用到它时再加载,并非一次性加载所有的class,所以这时候了解了转载 2016-12-09 10:06:23 · 406 阅读 · 0 评论 -
HashMap实现原理分析
1. HashMap的底层实现是通过初始化化一个Entry数组来实现key、value的保存。2. 在HashMap的Entry中有四个变量,key、value、hash、next,其中next用于在hash方法添加值冲突时候,所指向的下一个值。3. 在HashMap中添加值步骤 第一步,对key的hashcode进行hash计算,获取应该保存到数组中的index。转载 2016-12-06 16:05:28 · 1262 阅读 · 0 评论 -
java Pattern和Matcher详解
结论:Pattern与Matcher一起合作.Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持. 单独用Pattern只能使用Pattern.matcher(String regex,CharSequence input)一种最基础最简单的匹配。Java正则表达式通过java.util.regex包下的Pattern类与Matcher类实现(建议在阅转载 2016-11-22 20:20:29 · 332 阅读 · 0 评论 -
JVM结构、GC工作机制详解
原文地址:http://blog.youkuaiyun.com/tonytfjing/article/details/44278233网上有很多关于GC和JVM的文章,这篇博文主要是根据我最近看《深入理解Java虚拟机》的一些体会总结出来的,希望对新手有些帮助,也欢迎大牛拍砖。文章主要分为以下四个部分JVM结构、内存分配、垃圾回收算法、垃圾收集器。下面我们一一来看。一、JVM结构转载 2016-11-08 19:44:14 · 569 阅读 · 0 评论 -
JAVA锁和同步
一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在Java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池等待队列中)。 取到锁后,他就开始执行同步代码(被synchronized修饰的代码);线程执行完同步代码后马上就把锁还给同步对象,其他在锁池中等待的某个线程就可以拿到锁转载 2016-10-25 19:17:52 · 342 阅读 · 0 评论 -
有return的情况下try catch finally的执行顺序
结论:1、不管有木有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、finally转载 2016-10-18 15:05:26 · 409 阅读 · 0 评论 -
JAVA单例模式
public class SingletonInternal { //定义私有静态内部类用来创建外部类的对象 private static class SingletonInter{ private final static SingletonInternal INTERNAL=new SingletonInternal(); } //定义私有构造方法,原创 2016-10-14 15:08:00 · 310 阅读 · 0 评论 -
JAVA Lambda表达式
原文 http://blog.youkuaiyun.com/zxhoo/article/details/38349011函数式接口理解Functional Interface(函数式接口,以下简称FI)是学习Java8 Lambda表达式的关键所在,所以放在最开始讨论。FI的定义其实很简单:任何接口,如果只包含 唯一一个抽象方法,那么它就是一个FI。为了让编译器帮助我们确保一个接口满足F转载 2016-10-08 21:19:59 · 499 阅读 · 0 评论 -
Java中的static关键字解析
Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一。下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题。以下是本文的目录大纲: 一.static关键字的用途 二.static关键字的误区转载 2016-09-23 13:55:56 · 350 阅读 · 0 评论 -
object有哪些公用方法
protected Object clone()创建并返回此对象的一个副本。boolean equals(Object obj)指示某个其他对象是否与此对象“相等”。protected void finalize()当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。Class getClass()返回一个对象的运行时类。int hashCod原创 2016-03-21 14:39:50 · 1071 阅读 · 0 评论 -
java中== equals 和comparTo的区别
1、== 和 equals的区别: ==主要是两个变量值的比较,返回值为true 或者是false。对于普通变量,如:int a=10; int b= 10; a==b,返回为 true。而对于下面情况:String a=new String("abc");String b=new String("abc");a==b; 返回的则是一个false。这是因为,对于对象的比较转载 2016-02-23 18:48:42 · 1024 阅读 · 0 评论 -
JAVA 输入输出流详解
首先,计算机中所有的文件都是以字节的形式进行传输的。InputStream是字节输入流的所有类的超类,OutputStream是字节输出流的所有类的超类,Reader是所有读取字符串输入流的祖先,Writer是所有输出字符串流的祖先。因为JAVA中输入输出都是相对的,所以我们详解JAVA中的输入流,理解了输入流的相关知识,输出流自然就了解了。InputStream有很多子类,其中最常用原创 2015-12-02 09:48:09 · 707 阅读 · 0 评论 -
Java 代码块
Java中普通代码块,构造代码块,静态代码块区别及代码示例//执行顺序:(优先级从高到低。)静态代码块>mian方法>构造代码块>构造方法。其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。1 普通代码块 1 //普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行” 2 pub转载 2015-10-12 15:37:51 · 472 阅读 · 0 评论 -
JAVA——GUI鼠标事件
import java.awt.Button;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdap原创 2015-10-02 15:21:18 · 620 阅读 · 0 评论 -
JAVA——GUI窗口实现文本转移
import java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;原创 2015-10-02 15:19:28 · 772 阅读 · 0 评论 -
JAVA 实现斗地主分牌
import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.HashSet;import java.util.TreeSet;public class doudizhu2 { public static void main(String[] args原创 2015-09-23 20:12:27 · 1232 阅读 · 0 评论 -
JAVA Calendar实现出生天数计算
import java.util.Calendar;import java.util.Scanner;public class calendardemo { public static void main(String[] args) { System.out.println("请输入年份:"); Scanner sc=new Scanner(System.in)原创 2015-09-23 20:09:54 · 1814 阅读 · 0 评论 -
Java 猜数字小游戏
import java.util.Random;import java.util.Scanner;//定义猜数字小游戏类public class GassNumberDemo { //开始函数 public static void start(){ //定义一个随机变量 Random r = new Random(); //随机变量的范围在0-100 int n原创 2015-09-23 20:07:21 · 1013 阅读 · 0 评论 -
JAVA IO流RandomAccessFile随机读取
public class BufferreadDemo { static long n;//定义静态变量n为了记录每次读取的文件指针 //本文以从文件中读取字符串并转化为整形为例说明 public int[] transform(int size) { String s =null; //将文件读取操作全部放到try catch中以防止每次调用都要抛出异常 try { //实原创 2015-09-11 09:17:40 · 772 阅读 · 0 评论