
javase
好好学习312
这个作者很懒,什么都没留下…
展开
-
java内存详解
http://blog.youkuaiyun.com/yangyuankp/article/details/7651251转载 2016-10-22 21:24:56 · 264 阅读 · 0 评论 -
再谈java容器
总的来说java容器分为两大派系,即Collection和MapCollection实现了Itarable接口,这是为了给其子类提供规范的遍历方法,比如ArrayList使用数组存储,HashSet使用散列存储,其遍历方法肯定是不一致的,要求所有子类实现统一的Itarator方法,向调用者返回迭代器遍历(迭代器模式):迭代器迭代过程中,不允许进行除迭代器自己的remove之外的方法操作集合,否原创 2017-03-09 15:31:30 · 231 阅读 · 0 评论 -
tomcat session
在明白Tomcat的Session机制之前,先要了解Session,Cookie,JSESSIONID这几个概念。JSESSIONID是一个唯一标识号,用来标识服务器端的Session,也用来标识客户端的Cookie,客户端和服务器端通过这个JSESSIONID来一一对应。这里需要说明的是Cookie已经包含JSESSIONID了,可以理解为JSESSIONID是Cookie里的一个属性。让我假设原创 2017-03-07 14:12:15 · 244 阅读 · 0 评论 -
BIO、NIO、AIO概念
阻塞与非阻塞:阻塞与非阻塞是进程在访问数据的时候对数据是否准备就绪的一种处理方式。若数据准备就绪,两种方式接着往下执行。若数据没准备就绪,阻塞方式的处理是将一直等待数据准备好后才开始后续的处理。而非阻塞则是直接返回做其他事情。不死等。同步与异步:同步和异步都是应用程序和操作系统处理IO所采用的方式。同步是应用程序直接参与IO读写。异步是指所有IO读写都交给操作系统处理,应用程序去做其他原创 2017-04-08 11:35:39 · 270 阅读 · 0 评论 -
java正则表达式
[abc] ------ abc中的一个[^abc]----- 不是abc. ------任何字符\d ------[0-9]的数字\D------非数字[0-9]\s-------空白字符\S-------非空白字符\w-------单词字符[a-zA-Z_0-9]\W------非单词字符[^-w\b--------单词边界^ --------行的开原创 2017-03-14 15:54:09 · 260 阅读 · 0 评论 -
内部类
什么时候使用内部类:分析事物时,发现事物内部还有具体事物。内部类可以直接访问外部类的成员。//成员内部类Class Outter{String name = "test";class Inner{public void print(){String name="test2";System.out.printf(Outter.this.name);}}pu原创 2016-10-14 16:13:25 · 388 阅读 · 0 评论 -
java弱引用
本篇文章尝试从What、Why、How这三个角度来探索Java中的弱引用,帮助大家理解Java中弱引用的定义、基本使用场景和使用方法。由于个人水平有限,叙述中难免存在不准确或是不清晰的地方,希望大家可以指出,谢谢大家:)1. What——什么是弱引用?Java中的弱引用具体指的是java.lang.ref.WeakReference类,我们首先来看一下官方文档对它做的说明:原创 2017-03-27 10:04:54 · 486 阅读 · 0 评论 -
无锁类的使用---AtomicInteger
package suanfa;import java.util.concurrent.atomic.AtomicInteger;class MyThread extends Thread{ private AtomicInteger flag; public MyThread(AtomicInteger flag){ this.flag = flag; } @Override原创 2017-04-22 13:39:19 · 376 阅读 · 0 评论 -
无锁类的使用----AtomicReference
package suanfa;import java.util.Random;import java.util.concurrent.atomic.AtomicReference;class MyThread extends Thread{ private AtomicReference flag; public MyThread(AtomicReference flag,Strin原创 2017-04-22 13:54:38 · 1312 阅读 · 0 评论 -
Java并发编程之---Lock框架详解
Java 并发开发:Lock 框架详解摘要:我们已经知道,synchronized 是Java的关键字,是Java的内置特性,在JVM层面实现了对临界资源的同步互斥访问,但 synchronized 粒度有些大,在处理实际问题时存在诸多局限性,比如响应中断等。Lock 提供了比 synchronized更广泛的锁操作,它能以更优雅的方式处理线程同步问题。本文以synch原创 2017-04-22 16:35:48 · 1432 阅读 · 0 评论 -
传统消费者、生产者模型 syncrinized和Object的wait,notifyAll实现
package suanfa;import java.util.Date;import java.util.LinkedList;public class Main { public static void main(String[] args) throws Exception { Buffer buffer = new Buffer(5); for(int i =1;i<=原创 2017-04-22 19:21:15 · 596 阅读 · 0 评论 -
CountDownLatch类的基本使用
CountDownLatch主要用于这种情形:有一个任务想要往下执行,但是必须要等到其他的任务执行完毕后才可以继续往下执行。CountDownLatch类初始化时,指定一个准备任务的计数值。调用await方法等待准备任务全部完成。每当完成一个任务时,该值-1.当计数值为0时,await方法被唤醒,接着往下执行准备任务完成后的逻辑。Demo:下面的例子简单的说明了CountDownLatch的使原创 2017-04-22 21:11:13 · 375 阅读 · 0 评论 -
Java线程池详解
一简介线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我们在开发中处理线程的问题提供了非常大的帮助。二:线程池线程池的作用:线程池作用就是限制系统中执行线程的数量。原创 2017-04-23 19:00:18 · 237 阅读 · 0 评论 -
特殊的线程池---Fork/Join框架介绍及实例讲解
什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这原创 2017-04-24 10:38:06 · 2070 阅读 · 5 评论 -
JDK代理的基本使用
package suanfa;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;class MyHandler implements InvocationHandler{ Star star; public MyHandl原创 2017-05-07 13:35:55 · 289 阅读 · 0 评论 -
全面理解Java内存模型(JMM)及volatile关键字
本篇主要结合博主个人对Java内存模型的理解以及相关书籍内容的分析作为前提,对JMM进行较为全面的分析,本篇的写作思路是先阐明Java内存区域划分、硬件内存架构、Java多线程的实现原理与Java内存模型的具体关系,在弄明白它们间的关系后,进一步分析Java内存模型作用以及一些必要的实现手段,以下是本篇主要内容(如有错误,欢迎留言,谢谢!)理解Java内存区域与Java内存模型转载 2017-06-14 12:21:49 · 443 阅读 · 1 评论 -
java nio及操作系统底层原理
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]相关资料IO基本概念Linux环境同步异步阻塞非阻塞同步与异步阻塞与非阻塞IO模型Reference Link阻塞IO模型非阻塞IO模型IO复用模型信号驱动异步IO模型异步IO模型总结AIOBIONIOJava对BIONIOAIO的支持AIORefer原创 2017-06-27 12:53:20 · 18061 阅读 · 8 评论 -
浅谈java 泛型
为什么要使用泛型:为了让集合的使用更加安全,若不使用泛型的话,集合取出来的是object,调用特定对象的方法需要强转,从而也容易导致类型转换异常。引入泛型后让运行时可能出现的异常提前到了编译器,加入泛型后,若添加的类型与泛型不符合的话,编译时期就会出现红色波浪线报错。当泛型类中的方法要操作的类型和类上的泛型类型不一样的话,需要在方法上另外定义一个泛型形参class Util{/原创 2017-03-10 01:10:42 · 319 阅读 · 0 评论 -
再谈java io
InputStream接口:字节流读取的超类:(常用于操作二进制文件)其中Read方法,一次性读取一个字节(8 比特),在java中读出的字节用byte(一字节)描述,若文件大小为10000字节,则要循环遍历10000次,这会造成效率上的问题,因此Read方法也可以传入一个byte数组作为缓冲区,缓冲区大小为1024整数倍(物理块为1024整数倍),底层读取数据缓存在byte数组里,这样就极大原创 2017-03-10 14:09:23 · 249 阅读 · 0 评论 -
gc算法与垃圾收集器
GC算法 垃圾收集器概述垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾回收主要集中于 java 堆和方法区中,在程序运行期间,这原创 2017-03-05 21:33:35 · 270 阅读 · 0 评论 -
我的第一篇博客
好好学java,天天向上,记录学习过程的每一点滴。。。a new start原创 2016-10-12 18:39:04 · 181 阅读 · 0 评论 -
javase知识点总结
1、给数组分配空间时,必须指定数组的个数。创建后的数组不能修改其大小。即数组的长度是固定的以下创建方式是错误的:int[] arr; arr = {1,2,3}; (错误)数组内存分析:Arrays的使用:toString():将数组以字符串形式返回。sort():按升序排列。binarySearch():返回查找元素的索引,使用前一定要用sort排序。二原创 2016-10-12 18:42:30 · 614 阅读 · 0 评论 -
java中为什么要单继承,多实现
java中为什么要单继承,多实现,总结如下:若为多继承,那么当多个父类中有重复的属性或者方法时,子类的调用结果会含糊不清,因此用了单继承。为什么是多实现呢?通过实现接口拓展了类的功能,若实现的多个接口中有重复的方法也没关系,因为实现类中必须重写接口中的方法,所以调用时还是调用的实现类中重写的方法。那么各个接口中重复的变量又是怎么回事呢? 接口中,所有属性都是 static fina原创 2016-10-13 21:31:49 · 9477 阅读 · 4 评论 -
多态情况下,关于属性和方法的访问总结
1、父子和子类具有相同的成员变量时(静态或非静态),访问的都是父类的成员变量。2、子类重写非静态方法,访问子类的方法,子类重写静态方法,还是访问父类的方法原创 2016-10-14 14:34:41 · 948 阅读 · 0 评论 -
java内部类详解
请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3811445.html一:内部类基础:总的来说内部类包括四种:成员内部类、局部内部类、静态内部类、匿名内部类。成员内部类(可看做外部类的一个成员):可用public、默认权限、private、protected 修饰,public都可访问,默认:同转载 2016-11-12 18:49:09 · 226 阅读 · 0 评论 -
java容器总结
http://www.cnblogs.com/LipeiNet/p/5888513.htmljava容器主要包括两大类 Collection和Map其中Collection中主要子接口有List、Set、QueueList的主要特点是顺序存储,可以通过索引操作容器中的元素。该接口导出类为LinkedList和ArrayList,其中ArrayList底层是数组实现,默认长度为10,原创 2016-11-13 15:28:14 · 284 阅读 · 0 评论 -
java异常
http://blog.youkuaiyun.com/hguisu/article/details/61556361. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?转载 2016-11-13 21:08:00 · 236 阅读 · 0 评论 -
java正则表达式详解Pattern类和Matcher类
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式。 Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编转载 2016-11-14 16:13:29 · 291 阅读 · 0 评论 -
java io详解
http://blog.youkuaiyun.com/yczz/article/details/38761237初学Java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见。首先看个图:(如果你也是初学者,我相信你看了真个人都不好了,想想jav转载 2016-11-15 18:30:53 · 228 阅读 · 0 评论 -
equals与hashcode
http://blog.youkuaiyun.com/jiangwei0910410003/article/details/22739953Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这两个方法,今天就来介绍一些这两个方法的作用。equals()和hashCode()方法是用来在同一类中转载 2016-12-04 18:06:51 · 185 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
http://www.cnblogs.com/dolphin0520/p/3920373.html?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之转载 2016-11-22 00:55:10 · 219 阅读 · 0 评论 -
线程工作内存与主内存
线程工作内存是cpu寄存器和高速缓存的抽象描述,使用频率高的数据从主存拷贝到高速缓存中,每个线程在cpu高速缓存中对拷贝的数据进行读取、计算、赋值,再在合适的时候同步更新到主存的该数据,如i=1,i+1=2,若2在更新到主存前,其他线程是不知道该值被改变了,其他线程高速缓存中该值依然为1.解决方法:需要各线程间可见的变量前加上volatile修饰,在一个线程的高速缓存中改变该值时,其他线程会获原创 2016-11-22 20:41:22 · 2857 阅读 · 1 评论 -
Lucene倒排索引
like '%xxx%'效率很慢,建的索引将无效,查询的时候会像翻书一样一页一页的翻 返回的结果没有匹配度的概念,比如可能希望搜索的关键词在文章中出现的次数越多越是我想要的文章 当搜索live的时候,也想把LIVE/lives/living搜出来,但是数据库很难做到一、简介 倒排索引源于实际应用中需要根据属性的值来查找记录。 这种索引表中的每一项都包转载 2017-03-01 15:08:52 · 422 阅读 · 0 评论 -
java 内存泄漏
转载请注明出处:http://blog.youkuaiyun.com/anxpp/article/details/51325838,谢谢! Java的一个重要特性就是通过垃圾收集器(GC)自动管理内存的回收,而不需要程序员自己来释放内存。理论上Java中所有不会再被利用的对象所占用的内存,都可以被GC回收,但是Java也存在内存泄露,但它的表现与C++不同。 JAVA 中转载 2017-03-02 01:12:32 · 279 阅读 · 0 评论 -
jvm内存与gc
如果大家想深入的了解JVM,可以读读周志明《深入理解Java虚拟机:JVM高级特性与最佳实践》 需要掌握的东西,包括以下内容、判断对象存活还是死亡的算法(引用计数算法、可达性分析算法)、常见的垃圾收集算法(复制算法、分代收集算法等以及这些算法适用于什么代)以及常见的垃圾收集器的特点(这些收集器适用于什么年代的内存收集)。 JVM运行时数据区由程序计原创 2017-03-05 21:27:44 · 228 阅读 · 0 评论 -
ThreadLocal和WeakReference
ThreadLocal对象用法如下ThreadLocal tl =new ThreadLocal();public voidmultiThreadMethod(T t){ tl.set(t); T t2 = tl.get();}这样就可以做到每个线程可以存取自己的T对象。但是这种实现的原理是什么呢。其实这里做到数据的线程隔离方法很简单,看一下Thread类即可发原创 2017-06-14 16:46:14 · 408 阅读 · 0 评论