Java
文章平均质量分 69
FST_XUAN
这个作者很懒,什么都没留下…
展开
-
java中的匿名内部类总结
匿名内部类也就是没有名字的内部类正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 实例1:不使用匿名内部类来实现抽象方法?12345678910111213141516abstract class Person { public abstract void eat();} class Child exten转载 2017-09-13 18:16:27 · 174 阅读 · 0 评论 -
集合框架和泛型
集合框架概述集合类的作用:存储对象,长度可变。所属的包:java.util集合框架常用体系 Collection |---List(有序):通过重写equals()保证唯一性。 |---ArrayList(变长数组):查询效率高,更新效率低。线程不同步 |---LinkedList(链表):更新效率高,查询效率低。 |---原创 2017-10-07 17:12:27 · 773 阅读 · 0 评论 -
Java中的equals和==的区别
在初学Java时,可能会经常碰到下面的代码:1 String str1 = new String("hello");2 String str2 = new String("hello");3 4 System.out.println(str1==str2);5 System.out.println(str1.equals(str2)); 为什么第4行和第5行的输出结果不一转载 2017-09-16 21:35:00 · 228 阅读 · 0 评论 -
多线程
线程基础线程的五种状态 创建(New):使用new创建一个线程时的状态,尚未启动。 就绪(Runnable):调用start()启动线程,加入就绪队列,等待被调度进CPU运行 运行(Run):处于就绪状态的线程获取了cpu的执行权 阻塞(Block):由于某些原因该线程放弃了cpu的使用权。停止执行。除非线程进入可运行的状态,才会有机会获取cpu的使用权。 等待阻塞:运行中的原创 2017-10-03 22:34:00 · 279 阅读 · 0 评论 -
Iterator和ListIterator区别
我们在使用List,Set的时候,为了实现对其数据的遍历,我们经常使用到了Iterator(迭代器)。使用迭代器,你不需要干涉其遍历的过程,只需要每次取出一个你想要的数据进行处理就可以了。但是在使用的时候也是有不同的。List和Set都有iterator()来取得其迭代器。对List来说,你也可以通过listIterator()取得其迭代器,两种迭代器在有些时候是不能通用的,Iterator和转载 2017-09-20 22:45:34 · 305 阅读 · 0 评论 -
java迭代器并发修改异常说明
在集合的使用过程中,有时候我们选择迭代器操作。一般处理方式如下 LinkedList linkedList = new LinkedList<>(); linkedList.add("2"); linkedList.add("3"); linkedList.add("4");转载 2017-09-20 18:16:29 · 669 阅读 · 1 评论 -
java中为什么要使用迭代器
迭代模式是访问集合类的通用方法,只要集合类实现了Iterator接口,就可以用迭代的方式来访问集合类内部的数据,Iterator访问方式把对不同集合类的访问逻辑抽象出来,使得不用暴露集合内部的结构而达到循环遍历集合的效果。 例如,如果没有使用Iterator,遍历一个数组的方法是使用索引:Ruby代码 for(int i=0; i<array.length; i++) { … get(i)转载 2017-09-20 17:03:01 · 3379 阅读 · 0 评论 -
封装
关键字this、staticthis:本类对象的引用 this(属性):在构造函数中调用另一个构造函数。 this.属性:访问成员属性。 this.方法:调用成员方法。static:静态成员是类成员,不是对象成员。 静态变量:当属性值被所有对象共享时使用。 静态方法:当访问的成员都是静态或者在工具类中使用。由于jvm先加载类再加载对象,为了防止静态成员在没有创建本类对象之前访问对原创 2017-09-28 00:01:04 · 347 阅读 · 0 评论 -
继承与多态
抽象类使用场景 当多个类之间有关系并且包含相同功能,但是功能主体不同,可以考虑向上抽取,只抽取功能含义,不抽取功能主体。由于功能主体不知道,故该方法是抽象的,修饰方法为abstract,包含了抽象方法的类是抽象类,也需要在类上加abstract。 当不想让外界创建对象时,也可修饰类为abstract。 抽象类的特点 抽象类不可以创建对象。 若子类没有覆盖抽象类的所有原创 2017-09-28 00:55:38 · 320 阅读 · 0 评论 -
异常与包
异常体系Throwable |---Error |---Exception |---RuntimeException异常格式try { //可能出现异常的代码}catch (){ //对异常的处理}finally{ //一定执行的代码,通常用于释放资源}相关方法 String getMessage()原创 2017-09-28 17:08:28 · 239 阅读 · 0 评论 -
java非静态内部类为何不能有静态的成员?
1,首先解释几个概念: 1)内部类---顾名思义,内部类就是在一个类(外部类)的内部再定义一个类(内部类),这个内部类作为外部类的一个成员存在,也就是说内部类可随意访问外部类的成员数据和成员方法。package cb; public class Out//外部类 { private int a=1;//外部类的一个数据成员 class I转载 2017-09-27 22:58:24 · 302 阅读 · 0 评论 -
JAVA中内部类(匿名内部类)访问的局部变量为什么要用final修饰?
本文主要记录:在JAVA中,(局部)内部类访问某个局部变量,为什么这个局部变量一定需要用final 关键字修饰? 首先,什么是局部变量?这里的局部是:在方法里面定义的变量。因此,内部类能够访问某局部变量,说明这个内部类不是在类中定义的内部类,而是在方法中定义的内部类,称之为:局部内部类。 局部变量的作用域:局部变量是在某个方法中定义,当该方法执行完成后,局部变量也就消失了。【局部变量分配在JVM的虚转载 2017-09-27 22:44:03 · 274 阅读 · 0 评论 -
java中包命名常见规则
做java的都知道java的包、类、接口、枚举、方法、常量、变量等等模型都有一套约定的命名规则!学习每一种语言都应该学习对应语法和命名规则,以保持一个良好的编码风格。一来显示自己的专业、二来方便阅读和检查,快速供其他人参考,尽快理解项目代码结构!今天首先谈谈一些常用的java package命名规则,以后有时间再写写java其他的一些规范!首先我们该知道的是,java的包名都是由小写单词组成的,类名转载 2017-09-16 20:04:58 · 753 阅读 · 0 评论 -
为什么匿名内部类和局部内部类只能访问final变量
是变量的作用域的问题,因为匿名内部类是出现在一个方法的内部的,如果它要访问这个方法的参数或者方法中定义的变量,则这些参数和变量必须被修饰为final。因为虽然匿名内部类在方法的内部,但实际编译的时候,内部类编译成Outer.Inner,这说明内部类所处的位置和外部类中的方法处在同一个等级上,外部类中的方法中的变量或参数只是方法的局部变量,这些变量或参数的作用域只在这个方法内部有效。因为编译的时候内部转载 2017-09-13 18:10:58 · 312 阅读 · 0 评论 -
Java线程的5种状态及切换(透彻讲解)
Java中的线程的生命周期大体可分为5种状态。1. 新建(NEW):新创建了一个线程对象。2. 可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。3. 运行(RUNNING):可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代转载 2017-09-29 22:48:16 · 262 阅读 · 0 评论