
java
文章平均质量分 57
lucia_fanchen
笨 小 孩
展开
-
Ubuntu15.04下配置Java环境变量及安装IntelliJ IDEA
一. Java环境变量的配置 <1>. 下载JDK 下载地址:(请选择适合自己机型的版本号) http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260.html 注:要选择Accept License Agreement,不然下载不了. <2>解压安装 我们把jdk安装到这个原创 2015-06-01 17:06:36 · 4253 阅读 · 0 评论 -
JVM学习笔记-垃圾回收器
什么是垃圾回收器 Java垃圾回收器是Java虚拟机(JVM)的三个重要模块(另外两个是解释器和多线程机制)之一,为应用程序提供内存的自动分配(Memory Allocation)、自动回收(Garbage Collect)功能,这两个操作都发生在Java堆上(一段内存快)。某一个时点,一个对象如果有一个以上的引用(Rreference)指向它,那么该对象就为活着的(Live),否则死亡(Dea原创 2015-10-27 19:35:40 · 659 阅读 · 0 评论 -
浅谈Java的标识接口-Serializable
为什么java中有些interface没有任何方法? 在Java语言中,有些接口内部没有声明任何方法,也就是说实现这些接口的类不需要重写任何方法,这些没有任何方法声明的接口又被叫做标识接口,标识接口对实现它的类没有任何语义上的要求,它仅仅充当一个标识的作用,用来表明实现它的类属于一个特定的类型。这个标签类似于汽车的标志图标,每当人们看到一个汽车的标志图标时,就能知道这款汽车的品牌。Java类原创 2015-10-29 08:58:31 · 7966 阅读 · 0 评论 -
浅谈Java的标识接口-cloneable
为什么对对象进行克隆 谈到了对象的克隆,就不得不说为什么要对对象进行克隆?Java中所有的对象都是保存在堆中,而堆是供全局共享的。也就是说,如果同一个Java程序的不同方法,只要能拿到某个对象的引用,引用者就可以随意的修改对象的内部数据(前提是这个对象的内部数据通过get/set方法曝露出来)。有的时候,我们编写的代码想让调用者只获得该对象的一个拷贝(也就是一个内容完全相同的对象,但是在内存中存原创 2015-10-29 17:37:04 · 1592 阅读 · 1 评论 -
浅谈Java工厂模式
一. 概念 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。(工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。) 二. 分类 工厂模式在《Java与模式》中分为三类: 1)简单工厂模式(Simple原创 2015-08-18 20:53:49 · 1026 阅读 · 0 评论 -
浅谈Java单例模式
单例模式分三种:懒汉式单例、饿汉式单例、登记式单例 单例模式有以下特点: 1、单例类只能有一个实例; 2、单例类必须自己创建自己的唯一实例; 3、单例类必须给所有其他对象提供这一实例;//饿汉式单例类.在类初始化时,已经自行实例化 public class Singleton1 { //私有的默认构造子 private Singleton1() {转载 2015-08-18 16:25:37 · 515 阅读 · 0 评论 -
浅谈java适配器模式
基本概念: 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分类:类的适配器模式、对象的适配器模式、接口的适配器模式。 类的适配器模式在上图中可以看出,Adaptee类并没有sampleOperation2()方法,而客户端则期待这个方法。为使客户端能够使用Adaptee类,提供一个中间环节,即类Adapter,把Adaptee的A原创 2015-11-17 19:30:22 · 588 阅读 · 0 评论 -
浅层次理解Java Arrays.sort()函数
前几天java考试,遇到对对象数组进行排序,不太理解其中的原理,下面来更深入的理解下。(具体sort()的使用方法参加API文档)Arrays.sort()的使用主要分为对基本数据类型数组的排序和对对象数组的排序.1.对基本数据类型数组的排序 1>数字排序: int[] intArray = new int[]{1,56,-5,33}; Arrays.sor原创 2015-05-20 22:24:42 · 15023 阅读 · 3 评论 -
浅谈Java代理模式
在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以就简单的了解了一下下...代理:代理模式是常用的java设计模式,特征是代理类与委托类有同样的接口原创 2015-08-18 15:20:36 · 647 阅读 · 0 评论 -
浅谈java装饰模式
顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例.Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能,代码如下:public interface Sourceable { public void method();}public class Source i原创 2015-11-17 19:48:10 · 701 阅读 · 0 评论 -
The method getDispatcherType() is undefined for the type HttpServletRequest解决办法
我和小伙伴一起做一个项目,我从他的github上clone代码到自己机器运行出现就会出现这个错误,但在他的机子上却是好好地.后来检查出来是因为tomcat版本不一致,我用的8.0.27,他是8.0.23 装了8.0.27的tomcat之后就好了.原创 2015-11-13 08:33:09 · 1423 阅读 · 0 评论 -
浅谈Java反射机制
1.什么是Java反射 要让Java程序能够运行,就得让Java类被Java虚拟机加载。Java类如果不被Java虚拟机加载就不能正常运行。正常情况下,我们运行的所有的程序在编译期时候就已经把那个类被加载了。 Java的反射机制是在编译时并不确定是哪个类被加载了,而是在程序运行的时候才加载、探知、自审。使用的是在编译期并不知道的类。这样的编译特点就是java反射。2.Java反原创 2015-08-17 19:51:49 · 685 阅读 · 0 评论 -
JVM 学习笔记-java程序编译和运行的过程
Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程. Java程序从源文件创建到程序运行要经过两大步骤: 1、源文件由编译器编译成字节码(ByteCode) 2、字节码由java虚拟机解释运行。 因为java程序既要编译也要经过JVM的解释运行,所以说Java被称为半解释语言.下面通过以下这个java程序,来说明java程序从编译到最后运行的整个流程。代码如转载 2015-10-27 15:17:53 · 3010 阅读 · 0 评论 -
浅谈Java的==、equals()、hashcode()
一道题引发的血泪史 Long a1 = Long.parseLong("100"); Long a2 = Long.parseLong("100"); System.out.println( a1 == a2); Long b1 = Long.parseLong("200"); Long b2 = Long.parseLong("200"); Syst原创 2015-09-16 00:05:20 · 631 阅读 · 0 评论 -
Java并发编程:Lock
在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。本文先从synchronized的缺转载 2015-11-08 09:50:17 · 418 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一转载 2015-11-08 11:01:12 · 513 阅读 · 0 评论 -
Java并发编程:synchronized
虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。 以下是本文的目录大纲: 一.什么时候会出现线程安全问题? 二.如何解决线程安全问题? 三.synchronized同步方法或者同步块 若有不正之转载 2015-11-08 09:37:00 · 445 阅读 · 0 评论 -
IntelliJ IDEA 创建第一个Mybatis工程
暑假的时候学习SSH三大框架,记得花了整整一个暑假才把他们学完,后来接触了Mybatis,听说易上手,所以就学习学习.,简单总结一些两者的区别吧:1.两者最大的区别:针对简单逻辑,Hibernate和MyBatis都有相应的代码生成工具,可以生成简单基本的DAO层方法。针对高级查询,Mybatis需要手动编写SQL语句,以及ResultMap。而Hibernate有良好的映射机制,开发者无需关原创 2015-10-24 16:50:53 · 25758 阅读 · 13 评论 -
Spring 的ClassPathXmlApplicationContext()路径读取错误
最近在学习Spring,由于所用的IDE是intellij idea,而网上的资料基本都是MyEclipse,在刚开始创建项目,特别是写第一个项目的时候得需要自己好好探索一番。。。(回归正题^_^) // ClassPathXmlApplicationContext 是读取 src 目录下的配置文件 ApplicationContext app=new ClassPathXm原创 2015-08-19 10:59:39 · 1773 阅读 · 1 评论 -
IntelliJ IDEA SpringMVC+Mybatis初整合
自己一直有个错误的理解(springmvc是ssh的另一种叫法),不知道有没有和我一样的,其实springmvc和struts的功能对应着.=_=学习任何东西,感觉初次写的时候配置特别麻烦,所以特意记录下来,以供参考.1.命名过程 注:具体的maven环境配置请参考2.配置过程 pom.xml <properties> <spring.version>4.1.1.RELEASE<原创 2015-10-24 17:19:14 · 2250 阅读 · 0 评论 -
浅谈Java重载和重写
对于重载到底读chongzai还是zhongzai呢?当然是各有各的读法. 读 重(chong)载:函数被重复多次载入,表现多态性; 读 重(zhong)载:相对于c语言中的函数被过多的载入,也符合overload 的直译;所以还是看大家的习惯了,毕竟这只是一种称呼,重要的还是理解其用法. 昨天晚上一个学弟问我重写对返回值有限制么,那我为什么重写tostring()返回void也行?然后我习原创 2015-10-27 10:33:14 · 691 阅读 · 0 评论 -
JVM学习笔记-jvm内存区域模型
JVM内存区域模型 1.方法区 也称”永久代” 、“非堆”, 它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。默认最小值为16MB,最大值为64MB,可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法区的大小。 运行时常量池:是方法区的一部分,Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池,用于存放编转载 2015-10-27 15:29:46 · 543 阅读 · 0 评论 -
Java邮件发送的简单实现
java邮件发送:利用现有的邮件账户发送邮件,比如说,我在网易注册一个邮箱账户,通过JAVA操控,我可以不亲自登录网易邮箱,让程序自动的使用网易邮箱发送邮件。这一机制被广泛的用在注册激活和垃圾邮件的发送等方面。实现: 1.JavaMail 可以到http://www.oracle.com/technetwork/java/javamail/index-138643.html进行下载,并将mai原创 2015-12-24 21:12:12 · 950 阅读 · 0 评论