interview
orz024572
行走的小菜鸟
展开
-
是否可以在static环境中访问非static变量
不可以直接访问,static修饰的变量或者方法是和class绑定的,随着类的加载而加载到静态方法区,调用static方法时并不需要创建对象,而非static变量的访问必须遵循先实例化对象然后通过对象访问的原则,类加载时不一定有对象实例化,所有也就不能访问非static变量,但是假如在static环境中实例化对象然后通过对象进行访问的话是可以的...原创 2019-01-07 20:55:00 · 1628 阅读 · 0 评论 -
什么是迭代器(Iterator)?
为了方便的处理集合中的元素,Java中出现了一个对象,该对象提供了一些方法专门处理集合中的元素.例如删除和获取集合中的元素.该对象就叫做迭代器(Iterator).对 Collection 进行迭代的类,称其为迭代器。还是面向对象的思想,专业对象做专业的事情,迭代器就是专门取出集合元素的对象。但是该对象比较特殊,不能直接创建对象(通过new),该对象是以内部类的形式存在于每个集合类的内部。...转载 2019-01-08 05:06:39 · 12101 阅读 · 0 评论 -
Java集合类框架的基本接口有哪些?
基本接口有两类Collection类:元素集合,List和Set继承了Collection接口,List是有序元素集合,set是无序元素集合,ArrayList和LinkedList实现了list接口,HashSet实现的是set接口,Set中的元素是不能重复的,List中的元素是可以重复的 Map类:键值对集合,HashTable与HashMap实现了Map类,HashTable是线程安全...转载 2019-01-08 04:31:22 · 1654 阅读 · 0 评论 -
如何确保N个线程可以访问N个资源同时又不导致死锁?
死锁产生的条件:互斥请求:同一时间段只能有一个线程获取资源锁,其他的需要等待 不剥夺条件:在第一个线程获取到资源锁,没有运行结束的时候,其他线程不能强行剥夺资源锁 请求与保持条件:在线程获得了第一把资源锁的时候,保持自身资源锁并请求另外一个资源锁 循环与等待条件:存在进程循环请求资源锁,自身获得的资源锁被其他线程请求破坏死锁只需要破坏掉其中的任何一个条件,最简单的是破坏循环。通过wai...原创 2019-01-08 03:57:37 · 3426 阅读 · 0 评论 -
进程和线程的区别是什么?
进程是执行着的应用程序,线程是进程中的执行单元。 进程是资源分配单元,线程是执行单元 进程之间相互独立,同一进程的线程共用进程资源。 进程间通讯通过IPC,同一进程间线程通讯通过写入进程数据段来通讯,需要用到sychronized与voltaile等线程同步手段保持数据的一致性。 线程切换比进程切换快而且所需资源较少。...原创 2019-01-07 23:58:15 · 2477 阅读 · 1 评论 -
接口和抽象类的区别是什么?
1. 接口中的所有方法都是抽象的,抽象类中可以包含非抽象的方法。2. 接口中没有构造函数,抽象类中可以有构造函数3. 类只能单继承但是可以实现多个接口4. 抽象类可以在不实现接口方法的情况下实现接口5. 接口中的成员都是public的,抽象类的成员可以是private和protect的...原创 2019-01-07 21:51:04 · 87 阅读 · 0 评论 -
Java中的方法覆盖(Overriding)和方法重载(Overload)是什么意思?
Override:子类重写父类的方法(重写要保证:函数名,返回值类型,参数类型,参数数量都相同),实现多态(编译时的多态)//override class Super{ int test (int i){ System.out.println("super sout"); return i; } ...原创 2019-01-07 21:41:01 · 973 阅读 · 0 评论 -
什么是自动拆装箱
Java 是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,为了能够将这些基本数据类型当成对象操作,Java 为每一个基本数据类型都引入了对应的包装类型(wrapper class),int 的包装类就是Integer,从 Java 5 开始引入了自动装箱/拆箱机制,使得二者可以相互转换Java 为每个原始类型提供了包装类型:- 原始类型: boolean,ch...转载 2019-01-07 21:28:49 · 391 阅读 · 0 评论 -
Java中是否可以覆盖(override)一个private或者是static的方法?
不可以,1. override:子类重写父类的方法(返回值,方法名,参数都相同)以实现多态。2. private只能够被自身类访问,子类不能访问private修饰的成员,所有不能override一个private方法3. static方法是与类绑定的与任何实例都无关,随着类的加载而加载, static是编译时静态绑定的,override是运行时动态绑定的。形式上static可以over...原创 2019-01-07 21:20:40 · 6464 阅读 · 0 评论 -
iterator与ListIterator的区别
Iterator可以用来遍历list与set,ListIterator只能遍历list Iterator只能往前遍历,ListIterator可以往前也可以往后遍历 ListIterator实现了Iterator接口,并增加了增加元素,获取前一个元素索引与后一个元素索引...转载 2019-01-08 05:16:11 · 164 阅读 · 0 评论