java基础
cyywxy
这个作者很懒,什么都没留下…
展开
-
instanceof与class的等价性
class Base{};class Derived extends Base{};public class FamilyVsExactType { static void test(Object x){ System.out.println("Testing x ofType "+x.getClass()); System.out.println("x instanceof Bas转载 2017-10-25 19:59:47 · 696 阅读 · 0 评论 -
Java 异常链
Java 异常链 转自:http://www.cnblogs.com/haodawang/articles/5939122.html 有的时候我们会用printStackTrace来打印异常栈,有可能我们会在处理异常的时候同时又抛出一个异常。 自定义两个异常class MyException1 extends Exception{} class MyException2 extends Ex转载 2017-11-03 15:19:36 · 253 阅读 · 0 评论 -
你真的了解try{ return }finally{}中的return?
转自:http://www.cnblogs.com/averey/p/4379646.html今天去逛论坛 时发现了一个很有趣的问题:谁能给我我解释一下这段程序的结果为什么是:2.而不是:3代码如下:class Test { public int aaa() { int x = 1; try { return ++x;转载 2017-11-03 18:40:18 · 220 阅读 · 0 评论 -
构造器与多态
1.构造器的调用顺序 例:class Real{ public Real(String index) { // TODO Auto-generated constructor stub System.out.println("Real()"+index); }}class Meal{ Real r= new Real("Meal");转载 2017-11-14 10:46:57 · 251 阅读 · 0 评论 -
在继承中重写方法时抛出异常的问题
在继承中重写方法时抛出异常的问题 转自http://blog.csdn.net/xad707348125/article/details/44983861父类有方法fun(),子类重写了该方法。父类的方法需要抛出异常,子类的方法是否要同样抛出异常?抛出同样的异常?能否抛出父类没有的异常?还是一定要抛出父类所抛出异常范围内的异常?记住两句话:1,子类重写父类方法要抛出与父类一致的异常,或者不抛出异常转载 2017-11-06 11:25:57 · 948 阅读 · 0 评论 -
TreeSet的两种排序方式
最早的软件都是运行在大型机上的,软件使用者通过“哑终端”登陆到大型机上去运行软件。后来随着PC机的兴起,软件开始主要运行在桌面上,而数据库这样的软件运行在服务器端,这种Client/Server模式简称CS架构。随着互联网的兴起,人们发现,CS架构不适合Web,最大的原因是Web应用程序的修改和升级非常迅速,而CS架构需要每个客户端逐个升级桌面App,因此,Browser/Server模式开始流行,转载 2017-12-22 14:42:05 · 204 阅读 · 0 评论 -
SortedSet
SortedSet(1.5) SortedSet是个接口,它里面的(只有TreeSet这一个实现可用)中的元素一定是有序的。 保证迭代器按照元素递增顺序遍历的集合,可以按照元素的自然顺序(参见 Comparable)进行排序, 或者按照创建有序集合时提供的 Comparator进行排序。要采用此排序, 还要提供一些其他操作(此接口是 SortedMap 的集合对应物)。 插入有序集合转载 2017-12-22 15:28:26 · 388 阅读 · 0 评论 -
容器深入研究
队列除了并发应用中,Queue在java中仅有两个实现是LinkedList和PriorityQueue,它们的差异在于排序行为而不是性能。public class QueueBehavior { private static int count = 10; /** * * @param queue * @param gen转载 2018-01-04 18:39:47 · 151 阅读 · 0 评论 -
Java 接口和抽象类区别
Java 接口和抽象类区别抽象类:抽象方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:abstract void fun();如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。特点:抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为publi转载 2018-01-29 11:19:14 · 136 阅读 · 0 评论 -
TCP与UDP的区别
TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主...转载 2018-02-26 13:59:37 · 125 阅读 · 0 评论 -
中间缓存变量机制 i++
转自:https://blog.csdn.net/MaoTongBin/article/details/72852954 有一道经典的i++例题,内容如下:这里使用的中间缓存机制虽然给出了解释,但还是不容易理解。在网上找了一些其他人的解释:因为在计算过程中,使用了J...转载 2018-04-10 11:22:59 · 162 阅读 · 0 评论 -
java 反射
反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码))转自:https://blog.csdn.net/sinat_38259539/article/details/71799078一、反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一...转载 2018-07-23 10:27:46 · 137 阅读 · 0 评论 -
javaweb 防止表单重复提交
转自:https://www.cnblogs.com/xdp-gacl/p/3859416.html 在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交。一、表单重复提交的常见应用场景有如下的form.jsp页面 1 <%@ page la...转载 2018-07-20 15:59:27 · 185 阅读 · 0 评论 -
Java中Object.equals和String.equals的区别详解
转自:https://www.cnblogs.com/zx-bob-123/p/8117958.html前言Java中的堆和常量池的区别是什么呢?Object.equals与String.equals的区别呢?下面让我们通过一个小示例让你明白它~1、基础知识Java的存储空间:寄存器、栈、堆、静态存储区、常量存储区(常量池)、其他存储位置。此处重点介绍堆和常量存储区:堆:存...转载 2018-07-21 14:54:33 · 567 阅读 · 0 评论 -
深入理解HashSet
转自:https://blog.csdn.net/sugar_rainbow/article/details/68257208本想着回来以后好好看看HashSet的底层实现,结果打开源码一看的我惊呆了 wocao怎么这么刺眼呢?你是set啊,你是Collection的子类啊,你叔叔才是Map啊, 你这样我心好痛啊 冷静下来我仔细一想,Set不能有重复的元素,HashMap不允许...转载 2018-07-21 20:09:54 · 172 阅读 · 0 评论 -
多态
在面向对象的程序设计语言中,多态是继数据抽象和继承之后的第三种基本类型。多态通过分离做什么和怎么做,从另一个角度将接口和实现分离开来。多态不但能够改善代码的组织结构和可读性,还能够创建可扩展程序。优点:如果写一个方法,它接收基类及导出类作为参数时,如果不使用多态,需要编写多个重载方法,增加编程量,而使用多态只需要编写一个方法,以基类作为参数。例:enum Note { MIDDLE_C原创 2017-11-13 10:38:03 · 151 阅读 · 0 评论 -
接口与类型信息
接口与类型信息interface关键字的一种重要目标就是允许程序员隔离构件,进而降低耦合性。为了避免客户端程序员将接口类对象向下转型,可以对实现使用包访问权限。对Method对象或者域对象调用setAccessible(true)方法,可以获取各种甚至private权限的对象。例子如下:包访问权限的类C:public interface A { void f();}class C i转载 2017-10-27 15:47:44 · 380 阅读 · 0 评论 -
方法重载
为什么会有方法重载 转自:http://www.cnblogs.com/thecatcher/p/5843970.htmlOOP的编程方式就是让程序的逻辑更加接近现实世界的逻辑. 而在现实世界中,自然语言本身就是很强的冗余容错能力的. 比如,水有个方法叫洗. 那么在自然语言中,洗车,洗衣服…这都是洗这个方法. 映射到程序语言就是water.wash(car);,water.wash(clothes转载 2017-11-07 00:44:38 · 177 阅读 · 0 评论 -
异常
转自:http://blog.csdn.net/touch_2011/article/details/6860043 1、java标准异常概述Throwable表示任何可以作为异常被抛出的类,有两个子类Error和Exception。从这两个类的源代码中可以看出,这两个类并没有添加新的方法,Throwable提供了所以方法的实现。Error表示编译时和系统错误。Exception是可以被抛出的异常转载 2017-11-03 18:31:36 · 205 阅读 · 0 评论 -
Java中this关键字的用法
Java中this关键字的用法 转自:http://blog.csdn.net/maozhennba3/article/details/49906915在类的方法定义中使用的this关键字代表使用该方法的对象的引用,this指向的是自身对象的引用,我们可以通过一个小例子分析一下内存分配情况:代码展示: public class Leaf{ int i = 0;转载 2017-11-07 10:46:00 · 350 阅读 · 0 评论 -
finalize()方法
finalize()方法负责一些清理工作。 应用场合: 垃圾回收器只能释放哪些经由new释放的内存,假定对象(并非使用new)获得了一块“特殊”的内存区域,垃圾回收器无法回收,为了应对这种情况,java允许在类中定义一个名为finalize()的方法。 工作原理: 一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用finalize()方法,并且在下一次垃圾回收动作发生时,才会真正原创 2017-11-07 14:07:31 · 243 阅读 · 0 评论 -
Java集合:LinkedList的实现原理
前言LinkedList底层使用的双端链表,即每个节点既包含指向其后继的引用也包括指向其前驱的引用,LinkedList实现了List接口,继承了AbstractSequentialList类,在频繁进行插入以及删除的情况下效率较高。LinkedList使用较多的是add、get和remove,源码的分析也将对这三个方法进行分析。 add方法先看add方法:public boolean add(E转载 2017-10-23 17:01:45 · 199 阅读 · 0 评论 -
Java集合:ArrayList的实现原理
这里写链接内容“` . ArrayList概述:ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向ArrayList中不断添加元素,其转载 2017-10-23 16:46:33 · 199 阅读 · 0 评论 -
构造器初始化
一:构造器初始化 1.初始化顺序即使变量定义分散于方法定义之间,它仍会在任何方法(包括构造器)被调用之前得到初始化。 变量定义的先后顺序决定了初始化的顺序 例:package clear;class Window { Window(int marker) { System.out.println("Window(" + marker + ")"); }}原创 2017-11-09 18:15:50 · 359 阅读 · 0 评论 -
数组初始化
1.数组的定义 1. int[] a1;(这一种格式或许更合理,毕竟它表明类型是“一个int型数组”) 2. int a1[];2.数组的创建及初始化 1、静态初始化: 程序员在初始化数组时为数组每个元素赋值;2、动态初始化: 数组初始化时,程序员只指定数组的长度,由系统为每个元素赋初值。代码如下: public class ArrayInit { public static原创 2017-11-10 11:13:37 · 641 阅读 · 0 评论 -
枚举类型
public enum Spiciness { //命名习惯以大写字母如有多个则用下划线连接,使用逗号分开具名值 NOT,MILD,MEDIUM,HOT,FLAMING } //通过使用import static能够将enum实例的标识符带入当前的命名空间 /** 枚举的简单使用 @author zghw */ public class Simp原创 2017-11-10 12:05:17 · 171 阅读 · 0 评论 -
java泛型中<?>和<T>有什么区别?
java泛型中<?>和<T>有什么区别?public static void printColl(ArrayList<?> al){ Iterator<?> it = al.iterator(); while(it.hasNext()) { System.o转载 2017-10-25 14:44:25 · 443 阅读 · 0 评论 -
类型信息
1、java主要有两种方式在运行时识别对象和类的信息:RTTI和“反射”机制。 2、类加载器系统实际上可以包含一条类加载器链,但是只有一个原生态加载器,它是JVM实现的一部分。原生态加载器加载的是所谓的可信类,包括Java API,它们通常都是从本地盘加载的。在这条链中,通常不需要添加额外的类加载器,但是如果你有需求,那么你有一种方式可以挂载额外的类加载器。 3、所有的类都是在对其第一次使用时,转载 2017-10-25 15:54:59 · 188 阅读 · 0 评论 -
TreeMap底层实现原理
原文出自:http://cmsblogs.com/?p=1013。尊重作者的成果,转载请注明出处! 个人站点:http://cmsblogs.com-------------------------------------------------------------------------------------------------------...转载 2018-07-22 02:49:57 · 50575 阅读 · 8 评论