java基础
请訆涐尐坤
这个作者很懒,什么都没留下…
展开
-
effective心得(一) 静态工厂方法
静态工厂方法讲解: 创建类的实例最常见的就是new语句来调用类的构造方法。在这种情况下,程序可以创建类的任意多个实例,每执行一个new语句,都会导致java虚拟机的堆区产生一个java对象。假如类需要进一步封装创建自身实例的细节,并且控制自身实例的数目,那么就可以考虑静态工厂方法。 静态工厂方法与new语句调用的构造方法相比,有以下区别:(1):静态工厂的方法名可以任原创 2016-09-13 16:43:35 · 344 阅读 · 0 评论 -
jetty与tomcat区别
相同点1.tomcat与jetty都是一种servlet引擎,他们都支持标准的servlet规范和javaEE规范不同点1.架构比较jetty相比tomcat更为简单jetty架构是基于Handler来实现的,主要的扩展功能都可以用Handler来实现,扩展简单tomcat的框架是基于容量设计的,进行扩展是需要了解tomcat的整体设计结构,不易扩展2.性能比较转载 2016-09-20 18:02:30 · 35571 阅读 · 0 评论 -
java泛型理解
在java Se1.5之前,没有泛型情况下,通过对类型Object的引用来实现参数的任意化,“任意化”带来的缺点是要显示的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在进行的时候才出现错误,这是一个安全隐患泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,以提高代码的重用率规则限原创 2016-09-21 10:45:07 · 508 阅读 · 0 评论 -
java enum(枚举)理解
下面我在使用enum过程中一些经验和总结,主要包括如下内容:1.原始的接口定义变量2.语法(定义)3.遍历 ,swich等常用操作4.enum对象的常用方法介绍5.给enum自定义属性和方法6.enum的原理分析7.总结原始的接口定义变量public interface IConstants{ String MON=“mon”; String转载 2016-09-21 17:12:37 · 5050 阅读 · 0 评论 -
深入理解java回收机制
一。垃圾回收机制的意义java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题,它使得Java程序员在编写程序的时候不再需要考虑内存管理由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。ps:内存泄露是指该内存空间使用完毕之后未回收,在不涉及复杂数转载 2016-11-30 16:41:07 · 2751 阅读 · 0 评论 -
java基础——try catch final
结论:1、不管有木有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、final转载 2016-11-28 15:51:56 · 10040 阅读 · 4 评论 -
java中string stringbuffer和stringBuilder区别
一直想做这3个之间的区别,当我们在开发过程中一般好少去考虑这些1.在执行效率方面比较:stringbuilder > stringbuffer2.stringbuffer 与 stringBuilder,它们都是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上进行操作的,不像string一样创建一些对象来操作,所以速度快了举个例子吧:String原创 2016-09-20 12:07:58 · 2019 阅读 · 0 评论 -
java中如何处理高并发情况
1.背景描述并发就是可以使用多个线程同时处理不同的操作。高并发的时候就是有很多用户访问,导致系统数据不正确。对于大型网站,比如门户网站。在面对大量用户访问,高并发请求方面,基本的解决方案集中在这样几个环节,使用高性能的服务器,高性能的编程语言,还有高性能的web容器,这几个解决思路意味着需要投入大量的。使用一般的snchronized或者lock 或者队列都是无法满足高并发的情况。转载 2017-03-01 11:11:11 · 10607 阅读 · 0 评论 -
java线程池理解
如果开发的线程数据很多,并且每个线程都是执行一个时间很短的任务就结束了。这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有什么办法可以使的线程多次被复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在java中可以通过线程池来达到这样的效果。在这里的时候,我们就来补充点知识java多线程中sleep与wait区别wait方法:使当前线原创 2017-03-01 16:29:36 · 1531 阅读 · 0 评论 -
java序列化与反序列化
java序列化与反序列是什么?为什么需要序列化与反序列化?如何实现序列化与反序列化?我们就这几个问题好好研究一下,在一次面试中涉及到了,所以特做了这次笔记。1.java序列化与反序列化java序列化是指把java对象转换成字节序列的过程;而java反序列化是指把字节序列恢复到java对象的过程。2.为什么需要序列化与反序列化我们知道当2个进程需要远程通信时,可以相互发送各种类型的数转载 2017-01-05 11:24:20 · 368 阅读 · 0 评论 -
Java集合总结之Collection整体框架
java.util包中包含了一些在Java 2中新增加的最令人兴奋的增强功能:类集。一个类集(collection)是一组对象。类集的增加使得许多java.util中的成员在结构和体系结构上发生根本的改变。它也扩展了包可以被应用的任务范围。Java的类集(Collection)框架使你的程序处理对象组的方法标准化。在Java 2出现之前,Java提供了一些专门的类如Dictionary,Vecto转载 2016-09-20 17:07:04 · 621 阅读 · 0 评论 -
java讲义经验之谈(一)接口与抽象类的区别
1.今天也不知道是哪里脑袋碰撞了,突然觉得自己java基础还是不够牢靠,所以记下笔记,让自己更加了解java基础更坚固 ,下面每天会有一篇更新! 以前有面试过,别人问我抽象类与接口的区别,但是我原创 2016-08-24 15:37:00 · 357 阅读 · 0 评论 -
java讲义经验(三)数组理解
使用数组之前一定要理解数组也是一种类型,java的数组要求所有的数组元素都是同样的数据类型,因此,在一个数组中,数组中的元素类型是唯一的,即一个数组只能存储一种数据类型,而不是存储多种数据类型数组初始化有2种格式1.静态初始化,初始化时由程序员指定每个数组元素的初始值,由系统决定长度2.动态初始化,初始化时由程序员指定长度,由系统为数组元素分配初始值静态初始化定义arrar[]原创 2016-08-25 11:14:50 · 1016 阅读 · 0 评论 -
effective心得(2) 构造器中大量可选参数对比
静态工厂和构造器有个共同的局限性:它们都不能很好的扩展到大量的可选参数。这就是builder模式比如java中一个类拥有多个标签的时候,使用构造器编写的时候,代码如下: 这个构造器调用通常需要许多你不需要的设置的参数,但还是不得不为它们传递值,一句话:重叠构造器模式可行,但是当有许多参数时,客户端代码会很难编写,并且仍然难以阅读。遗憾的是,javaBeans模式自原创 2016-09-13 18:05:35 · 319 阅读 · 0 评论 -
java讲义经验之谈(二)抽象类与抽象方法
抽象方法;在类中没有方法体的方法,就是抽象方法抽象类:含有抽象方法的类叫做抽象类抽象类中的抽象方法必须被实现如果一个子类没有实现父类中的抽象方法,则子类也成为一个抽象类抽象类中普通的方法可以不必实现用abstract关键字类修饰一个类时,这个类叫做抽象类,用abstract关键字类修饰一个方法时,这个方法叫做抽象方法abstract class animal{ //用abs转载 2016-08-24 16:05:58 · 313 阅读 · 0 评论 -
java讲义(十)HashSet,LinkedHashSet,TreeSet,enumSet
HashSet按hash算法来存储集合中的元素,因此具有很好的存取和查找功能hashSet具有以下特点:1.不能保证存储元素的顺序2.hashSet不是同步,因此多个线程同时访问hashSet的时候,则务必通过代码来保证其同步3.集合元素可以为nullhashSet集合判断两个元素是否相等标准是通过equal()方法比较相等,并且两个对象中的hashCode返回值是否也相等原创 2016-09-07 14:00:21 · 379 阅读 · 0 评论 -
java讲义(九)多态理解
我们今天来讲讲面向对象三要之一的多态object p=new Person(),其实子类是一种特殊的父类,因此java允许把一个子类对象直接赋给一个父类引用变量,无须类型转换,或者被称为向上转型,向上转型是系统自动完成这个p引用变量的编译时类型是object,则运行时类型是Person,当运行时调用该引用变量的方法时,其方法行为总是表现是子类方法的行为特征,而不是父类方法的行为特征,这可能原创 2016-09-06 11:57:43 · 640 阅读 · 0 评论 -
java讲义(八)HashMap与HashTable区别
1.继承和实现区别hashTable是基于陈旧Dictionary类,完成map接口;HashMap继承与AbstractMap,AbstractMap完成map接口2.线程安全问题HashTble的方法是同步的,而hashMap是未同步的,所以在多线程的场合要手动同步hsshMap3.对null处理不同HashTable是不允许null值(key与value都不可以),has原创 2016-09-02 18:04:38 · 646 阅读 · 0 评论 -
java中arrayList与linkedList区别
这个问题其实好早就想做笔记了,一次面试问到了,ArrayList与linkedList在性能上各有优缺点,都有各自的地方,1.对ArrayList和LinkedList而言,在列表中末尾添加一个元素所花的开销是固定的2.在ArrayList中间插入一个元素或删除一个元素意味着整个列表中剩余的元素都会移动,而LinkedList的中间插入或删除一个元素的开销是固定的3.LinkedL原创 2016-09-02 16:09:15 · 3957 阅读 · 0 评论 -
java讲义(七)final修饰符
1.1 final成员变量final关键字可用于修饰类,变量和方法,用于表示它修饰的类,方法和变量不可改变。final修饰变量时,表示该变量不可被改变。final既可以修饰成员变量(类变量和实例变量),也可以修饰局部变量,形参。有的书上介绍说final修饰的变量不可被赋值,这种说法是错误的,严格的说法是,final修饰的变量不可改变,一旦获取初始值,该final变量的值就不能被重新赋值。因原创 2016-08-30 15:15:41 · 445 阅读 · 0 评论 -
java讲义(六)java初始化块
java初始化是java类里可出现的第四种成员(前面依次是成员变量,方法和构造器),一个类里可以有多个初始化块,相同类型的初始化块有顺序:前面定义的初始化块执行,后面定义的初始化块后执行,初始化块的语法格式如下 [修饰符]{//初始化的可执行的代码块}要点1.与构造器类似,创建一个java对象时,不仅会执行该类的普通初始化块和构造器,而且系统会一种上溯到java.lang.object类,先执原创 2016-08-29 15:00:23 · 381 阅读 · 0 评论 -
java讲义(四)方法参数与方法重载
1.今天闲来无事,又写起这玩意来了,我怎么突然发现我魔怔了,我们大家都已经知道java里的方法是不能独立存在的,调用方法也必须使用类或对作为主调者,如果声明方法时包含了形参声明,则调用方法必须给这些形参指定参数值,调用方法时实际传给形参的参数值也成为实参 那么 ,java的实参是怎么传递的呢?这是由java方法的参数传递机制来控制的,java里方法的参数传递方式只有一种:值传递,所谓的值传递就原创 2016-08-26 13:59:06 · 700 阅读 · 0 评论 -
java 静态内部类
今天闲来无事 看了看effective java这书的时候 看到内部类这一块,其实内部类说熟悉不熟悉 ,但是也用过,只是我们用的比较少如果一个类要被声明为static的,只有一种情况,就是静态内部类。如果在外部类声明为static,程序会编译都不会过。在一番调查后个人总结出了3点关于内部类和静态内部类(俗称:内嵌类)1.静态内部类跟静态方法一样,只能访问静态的成员变量和方法,不转载 2017-12-08 17:57:32 · 1428 阅读 · 1 评论