
java
winter2summer
与其欣赏别人的故事,不如演绎自己的人生!
展开
-
java内部类应用
1.一般来说,内部类继承自某个类或实现某个接口,内部类的代码操作创建它的外围类的对象。所以可以认为内部类提供了某种进入外围类的窗口。2.每个内部类都能独立的继承自一个接口的实现,所以无论外围类是否已经继承了某个接口的实现,对于内部类都没有影响。在单个外围类中,可以让多个内部类以不同的方式实现同一个接口,或继承同一个类。3.内部类使得多重继承的解决方案变得完整。内部类允许继承多个非接口类原创 2017-02-28 00:50:23 · 340 阅读 · 0 评论 -
Servlet 3.0 新特性详解
Servlet 3.0 新特性概览 1.Servlet、Filter、Listener无需在web.xml中进行配置,可以通过Annotation进行配置;2.模块化编程,即将各个Servlet模块化,将配置文件也分开配置。3.Servlet异步处理,应对复杂业务处理;4.异步Listener,对于异步处理的创建、完成等进行监听;5. 文件上传API简化; tomc转载 2017-03-12 23:40:13 · 219 阅读 · 0 评论 -
有return的情况下try catch finally的执行顺序(最有说服力的总结)
结论:1、不管有木有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、finally转载 2017-03-29 16:01:57 · 192 阅读 · 0 评论 -
Java中有关Null的9件事
下面输出结果?public class StaticTest { private static String string = null; public static void print() { System.out.println("aaaa"); } private void print2(){ System.out.println("xxxxxx"); }转载 2017-03-22 18:33:12 · 1969 阅读 · 0 评论 -
JDBC中的Statement和PreparedStatement的区别
以Oracle为例吧Statement为一条Sql语句生成执行计划,如果要执行两条sql语句select colume from table where colume=1;select colume from table where colume=2;会生成两个执行计划一千个查询就生成一千个执行计划!PreparedStatement用于使用绑定变量重用执行计划转载 2017-03-29 20:26:34 · 391 阅读 · 0 评论 -
Java常量池理解与总结
一.相关概念什么是常量用final修饰的成员变量表示常量,值一旦给定就无法改变!final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。Class文件中的常量池在Class文件结构中,最头的4个字节用于存储魔数Magic Number,用于确定一个文件是否能被JVM接受,再接着4个字节用于存储版本号,前2个字节存储次版本号,后2个存储主转载 2017-03-29 20:44:35 · 247 阅读 · 0 评论 -
彻底理解ThreadLocal
ThreadLocal是什么 早在JDK 1.2的版本中就提供Java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影转载 2017-03-14 10:07:11 · 222 阅读 · 0 评论 -
Servlet的Listener的使用
摘要: 当Web应用在Web容器中运行时,Web应用内部会不断地发生各种事件,如Web应用被启动,Web应用被停止,用户的Session开始与结束,用户请求到达等,通常来说,这些Web事件对用户是透明的。 当Web应用在Web容器中运行时,Web应用内部会不断地发生各种事件,如Web应用被启动,Web应用被停止,用户的Session开始与结束,用户请求到达等,通常来说,这转载 2017-03-14 16:02:03 · 342 阅读 · 0 评论 -
servlet3异步处理请求
Servlet3.0 新特性:Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布。该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化 Web 应用的开发和部署(Tomcat7提供了对Java EE6规范的支持。)。如下:异步处理支持:有了该特性,Servlet 线程不再需要一直阻塞,直到业务处理完毕才能再输出转载 2017-03-13 15:24:30 · 690 阅读 · 0 评论 -
servlet2.x采用的是单实例多线程方式
Servlet类本质上也是一个普通的类,并且Servlet容器默认只允许单个实例存在。当请求达到服务器的时候,Servlet实例如果已经存在的话则直接加载该实例,如果该Servlet类还未实例化则会先初始化这个Servlet。当请求到达Web服务器时,Web服务器中有一个线程池,它会从线程池中取一个工作线程,通过该线程调用请求的Servlet。因此,对Servlet来说,可以同时被好几个请求调用。转载 2017-03-13 15:09:59 · 236 阅读 · 0 评论 -
Java 反射机制深入研究
Java 反射是Java语言的一个很重要的特征,它使得Java具体了“动态性”。 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制。 Java 反射机制主要提供了以下功能:在运行时判断任意一个对象转载 2017-03-25 18:04:03 · 222 阅读 · 0 评论 -
java内省Introspector
内省(Introspector) 是Java 语言对 JavaBean 类属性、事件的一种缺省处理方法。 JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为“值对象”(Value Object),或“VO”。方法比较少。这些信息储存在类的私有变量中,转载 2017-03-25 19:49:08 · 278 阅读 · 0 评论 -
Class.forName()用法详解
主要功能Class.forName(xxx.xx.xx)返回的是一个类Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段下面,通过解答以下三个问题的来详细讲解下Class.forName()的用法。一.什么时候用Class.forName()?先来个热身,给你一个字符串变量,它代表一个类的包名和类名,你怎么实转载 2017-04-06 10:59:34 · 518 阅读 · 0 评论 -
JAVA 容器类总结
原文出处:http://www.cnblogs.com/wishyouhappy/p/3669198.html1.java容器分类图 说明:第一个图为简化图(其中粗线部分是重点的容器),第二个图为完整容器分类图 2.容器类接口和抽象容器类 2.1 说明 容器接口是容器的基础转载 2017-04-25 16:56:00 · 304 阅读 · 0 评论 -
攻破JAVA NIO技术壁垒
现在使用NIO的场景越来越多,很多网上的技术框架或多或少的使用NIO技术,譬如Tomcat,Jetty。学习和掌握NIO技术已经不是一个JAVA攻城狮的加分技能,而是一个必备技能。再者,现在互联网的面试中上点level的都会涉及一下NIO或者AIO的问题(AIO下次再讲述,本篇主要讲述NIO),掌握好NIO也能帮助你获得一份较好的offer。 驱使博主写这篇文章的关键是网上关于NIO的文章并不是很转载 2017-04-04 22:56:45 · 426 阅读 · 0 评论 -
java获取当前路径的几种方法
1、利用System.getProperty()函数获取当前路径: System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径 2、使用File提供的函数获取当前路径: File directory = new File("");//设定为当前文件夹 try{ System.out.pr转载 2017-05-21 10:04:18 · 430 阅读 · 0 评论 -
正则表达式30分钟入门教程
目录跳过目录本文目标如何使用本教程正则表达式到底是什么东西?入门测试正则表达式元字符字符转义重复字符类分枝条件反义分组后向引用零宽断言负向零宽断言注释贪婪与懒惰处理选项平衡组/递归匹配还有些什么东西没提到联系作者网上的资源及本文参考文献更新纪录本文目标30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。如何使用本教程最重要的是转载 2017-03-12 18:23:39 · 177 阅读 · 0 评论 -
java中volatile关键字的含义
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synchronized转载 2017-03-11 00:50:59 · 231 阅读 · 0 评论 -
Java 理论与实践: 正确使用 Volatile 变量
2007 年 7 月 05 日volatile 变量使用指南Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。在这期的 Java 理论与实践 中,Brian Goetz 将介绍几种转载 2017-03-11 14:51:37 · 185 阅读 · 0 评论 -
走进java
1.概述java不仅仅是一门编程语言,它还是一个由一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统,移动终端,企业服务器和大型机等各种场合。 它摆脱了硬件平台束缚,实现了“一次编写,到处运行”的理性; 它提供个了一种相对安全的内存管理和访问机制,避免了绝大部分的内存泄漏和指针越界问题;原创 2017-02-22 17:11:54 · 444 阅读 · 0 评论 -
java FX
原创 2017-02-23 00:25:37 · 845 阅读 · 0 评论 -
windows系统java配置环境变量
配置系统环境 配置环境变量:右击“我的电脑”-->"高级"-->"环境变量"。(1)JAVA_HOME环境变量。作用:它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。配置方法:在系统变量里点击新建,变量名填写JAVA_HOME,变量值填写JDK的安装路径。(根据自己的安装路径填写)JA转载 2017-02-23 11:31:34 · 601 阅读 · 0 评论 -
java内部类
可以将一个类的定义放在另一个类定义的内部,这就是内部类。内部类是一种非常有用的特性,因为它允许将一些逻辑相关的类组织在一起,并控制位于内部的类的可视性。内部类的定义:package com.zcl.innerclazz;public class School { private String name; public String get原创 2017-02-24 20:44:36 · 293 阅读 · 0 评论 -
Java 动态代理作用是什么?
作者:Intopass链接:https://www.zhihu.com/question/20794107/answer/75164285来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。① 首先你要明白静态代理的作用我们有一个字体提供类,有多种实现(从磁盘,从网络,从系统)public interface FontProvide转载 2017-03-06 00:48:50 · 265 阅读 · 0 评论 -
What is a Proxy?
Proxy is a design pattern. We create and use proxy objects when we want to add or modify some functionality of an already existing class. The proxy object is used instead of the original one. Usually,转载 2017-03-06 01:05:37 · 312 阅读 · 0 评论 -
JAVA虚拟机体系结构
JAVA虚拟机的生命周期 一个运行时的Java虚拟机实例的天职是:负责运行一个java程序。当启动一个Java程序时,一个虚拟机实例也就诞生了。当该程序关闭退出,这个虚拟机实例也就随之消亡。如果同一台计算机上同时运行三个Java程序,将得到三个Java虚拟机实例。每个Java程序都运行于它自己的Java虚拟机实例中。 Java虚拟机实例通过调用某个初始类的main()方法来运行一个Ja转载 2017-03-19 00:04:59 · 408 阅读 · 0 评论 -
【五年】Java打怪升级之路
http://blog.csdn.net/moneyshi/article/details/53381474这几年来,我最大的感想就是一句话:多看、多写、多想、多问、多分享、多优化、多运动...1、【多看】 读万卷书,行万里路。多看书,多看别人写的代码,多看别人的问题,多看相关技术书,多看文档,多看..... 很多东西都需要我们用双眼来看,当然,很多人肯定会说,哪有转载 2017-03-10 15:06:18 · 397 阅读 · 0 评论 -
race condition
竞争冒险(race hazard)又名竞态条件、竞争条件(race condition),它旨在描述一个系统或者进程的输出依赖于不受控制的事件出现顺序或者出现时机。此词源自于两个信号试着彼此竞争,来影响谁先输出。举例来说,如果计算机中的两个进程同时试图修改一个共享内存的内容,在没有并发控制的情况下,最后的结果依赖于两个进程的执行顺序与时机。而且如果发生了并发访问冲突,则最后的结果是不正确的。转载 2017-03-27 17:36:58 · 710 阅读 · 0 评论 -
Java多线程中Synchronized简介和Static Synchronized的区别
在进行Java开发时,多线程的开发是经常会使用的。首先会问一个小问题啊,在Java中有几种方法可以创建一个线程?我给的答案是3种。(如果还有其他的请留言告诉我哈。)1、创建直接继承自Thread类创建线程子类。 步骤如下:a 定义一个子类,同时要继承Thread类。 b 在这个子类中重写run方法。 c 在需要的地方创建该子类的实例转载 2017-03-10 18:44:27 · 202 阅读 · 0 评论 -
Java 7的6个新特性
Java 8早都出来了,现在来了解一下Java 7语言上的几个新特性。 :) switch语句支持String、数字常量的新形式、改进的异常处理、TWR语句、钻石语法和变参警告位置的修改。1. switch语句支持Stringpublic void printDay(String dayOfWeek) { switch(dayOfWeek) { case "Sund转载 2017-03-10 23:23:38 · 439 阅读 · 0 评论 -
Java面试题全集(7)
61、编写多线程程序有几种实现方式? 答:Java 5以前实现多线程有两种实现方法:一种是继承Thread类;另一种是实现Runnable接口。两种方式都要通过重写run()方法来定义线程的行为,推荐使用后者,因为Java中的继承是单继承,一个类有一个父类,如果继承了Thread类就无法再继承其他类了,显然使用Runnable接口更为灵活。补充:Java 5以后创建线程还有第三种方转载 2017-03-10 21:31:09 · 292 阅读 · 0 评论 -
Java多线程生命周期
关于Java中线程的生命周期,首先看一下下面这张较为经典的图:上图中基本上囊括了Java中多线程各重要知识点。掌握了上图中的各知识点,Java中的多线程也就基本上掌握了。主要包括:Java线程具有五中基本状态新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread();就绪状态(Runnable):当调用线程对转载 2017-03-10 18:28:56 · 237 阅读 · 0 评论 -
CopyOnWriteArrayList详解
除了加锁外,其实还有一种方式可以防止并发修改异常,这就是将读写分离技术(不是数据库上的)CopyOnWriteArrayList中写操作需要大面积复制数组,所以性能肯定很差,但是读操作因为操作的对象和写操作不是同一个对象,读之间也不需要加锁,读和写之间的同步处理只是在写完后通过一个简单的“=”将引用指向新的数组对象上来,这个几乎不需要时间,这样读操作就很快很安全,适合在多线程里使用,绝对不转载 2017-03-11 00:21:56 · 209 阅读 · 0 评论 -
Java中如何动态创建接口的实现
有很多应用场景,用到了接口动态实现,下面举几个典型的应用:1、mybatis / jpa 等orm框架,可以在接口上加注解进行开发,不需要编写实现类,运行时动态产生实现。2、dubbo等分布式服务框架,消费者只需要引入接口就可以调用远程的实现,分析源代码,其实在消费端产生了接口的代理实现,再由代理调用远程接口。3、spring aop 这是最典型的动态代理了。创建接口的动态实现,有转载 2017-06-18 12:38:02 · 3024 阅读 · 0 评论