java作用域public private protected 不写-friendly的区别?
  • public:可以被任何类引用。
  • protected:除了其他包不能使用,当前类,子孙类,同一包下的所有类都可

    以使用。
  • friendly:不写时,子孙类和其他包不能使用,当前类,同一包下都可以使用。
  • private:只有当前类中可以使用。

& 和 && 的区别。
  • &是位运算符,而&&的逻辑运算符。二者没有可比性。

collection和collections的区别。
  • collection是java中容器框架的顶层接口。继承它的主要有list和set两个接口。
  • collections是针对容器类的一个帮助类。提供一系列的静态方法实现对容器的各种

    搜索,排序,线程安全化的操作。
  • 线程安全化:使用synchronized方法将集合变为线程同步的安全集合。
class model{
List list1 = Collections.synchronizedList(new ArrayList());
List list2 = Collections.synchronizedMap(new Map<String,String>());
List list3 = Collections.synchronizedSet(new TreeSet<>());
}

String s=new String("asd")创建了多少个对象。
  • 创建了两个。首先创建asd的字符串对象。然后new字符串对象将asd赋予它。
  • String s = "asd":这种方式变量存储在方法区中。
  • new String("asd"): 这种方式对象存储在堆中。

java中有没有goto关键字?
  • java中的保留字,现在没有在java中使用。goto语句常与条件语句配合使用。可用来实现

    条件转移,构成循环,跳出循环体等功能。但是在结构化程序中,一般不使用goto语句,以免

    造成程序流的混乱,使理解和调试程序困难。

5%3、-5%3、5%-3、-5%-3的结果是多少?
  • 以右边的符号为准:2 -2 2 -2

Overload和Override的区别
  • 重载:Overload在同一类中使用,只要方法名一致,参数个数,返回值都可以不用一致。访问类型也可以改。
  • 重写:Override继承关系类使用,方法名,返回值,参数个数必须一致。访问类型必须必父类大。

set容器里的元素是不能重复的,那么使用什么方法实现的?
  • 首先set集合的底层是map实现的,而map的key是不能重复的。map的key值不重复是因为put方法会先进行

    hashcode的比较,如果值一致那么再进行equals方法比较。这样保证key值得唯一性。

error和exception的区别
  • error一般是指可以恢复但是非常困难的问题,如栈溢出,内存溢出。
  • exception指运行时异常,这是一种设计或者实现上的问题。

jdk8的新特性 主要的
  • Lambda表达式和函数式接口:
lambda表达式也称为闭包。是jdk8中的最大的改变,它允许我们将函数当成参数传递给某个方法,或者把代码
本身当做数据处理:函数式开发。
  • 接口增加的默认方法和静态方法:
default和static
  • 方法引用:
方法引用使得开发者可以引用现存的方法,java类的构造方法或者实例对象。一般和lambda表达式配合使用。
使得代码简介,紧凑。
构造器引用 Class::new///Class<T>::new
静态方法引用 Class::static_method
某个类的成员方法引用 Class::method
实例对象的成员方法引用 instance::method
  • 重复注解:
自从java5引进注解之后,注解使用的越来越多,尤其是在框架中,但是注解不能在一个地方多次使用,
java8打破了这个限制,可以在一个地方重复使用同一个注解,使用 @Repeatable定义重复的注解
  • 更好的类型推断
编译器可以推导出某个参数的数据类型,使得代码更加的简洁
  • 拓宽注解的应用场景
现在注解几乎可以使用在任何元素上。局部变量,接口,超类,实现类等

抽象类的接口的区别
  • 相同点:都是不能被直接实例化的
  • 不同点:
1. 抽象类是可以有方法体的,接口中没有,但是java8的新特性中接口可以写static和default关键字
的方法。
2. 抽象类中的成员变量可以随意修饰,接口中只能是public sttaic final类型
3. 接口中不能含有静态代码块,静态方法。抽象类可以有,新特性之后,接口可以写静态方法。
4. 一个类只能单继承,但是可以多实现。
5. 抽象类可以定义成员变量,接口中的变量都是常量。

抽象类是否可以继承实体类?
  • 抽象类是可以继承实体类的,但是前提是实体类具有明确的构造函数。

constructor可以被override么?
  • 不能,因为constructor是不能被继承的。但是可以被overload。

String类可以被继承么?
  • 不能,该类是被final修饰的

在try-catch-final中,return在try语句里,那么执行顺序?
  • final中的code会在return之前执行。

静态变量和实例变量的区别
  • 静态变量是被static修饰的变量,也叫作类变量,不属于类的任何一个对象,一个类不管创建多少个对象

    静态变量在内存中有且仅有一个拷贝。
  • 实例变量必须依托于某一个实例,需要先创建对象后通过对象才能访问,静态变量可以实现让多个对象共享

    内存

ArrayList和Vector的区别,HashMap和Hashtable的区别。

ArrayList和Vector:

  • 同步性:ArrayList是线程不安全的,也即是不同步的,Vector是线程安全的,也即是同步的。
  • 数据增长:ArrayList在达到阈值的时候会增长原来集合的50%,Vector则会增长100%。

HashMap和Hashtable:

  • 历史原因:Hashtable是基于Dictionary类的,HashMap是java1.2引进的Map接口的一个实现。
  • 同步性:Hashtable是线程安全的,HaspMap是线程不安全的的。
  • 值:只有HashMap可以有空值,key或value。

char变量可以存储一个汉字么?为什么?
  • 可以,java中以unicode编码,一个char占16字符,所以放中文是没有问题的。

GC是什么?为什么要有GC?
  • GC就是垃圾收集器。java不像C定义一个变量需要手动释放内存。主要就是GC实现的,他可以自动检测对象

    是否超过作用域从而达到自动回收的目的。

String和StringBuffer和StringBuilder的区别
  • String是长度不可变的,而Buffer和Builder是可变的。
  • buffer和builder最大的区别就是buffer是线程安全的,builder是线程不安全的。所以多线程推荐使用

    buffer,单线程使用builder。

final,finally,finalize的区别
  • final:修饰符,修饰类:不可被继承,修饰变量:变为常量,修饰方法:不能重载
  • finally:在处理异常时finally块来执行任何清除操作。
  • finalize:方法名,java允许finalize方法在GC将对象从内存中清除之前做必要的清理工作。此方法是

    GC确定该对象没有被使用的时候调用的,属于Object类,所以所有类都有该方法。

面向对象的特性
  • 抽象
  • 继承
  • 封装
  • 多态

基本数据类型
  • byte char int short long double float boolean

int和integer的区别
  • int是基本数据类型,integer是int的封装类型。

ArrayList和Vector和LinkedList的存储性能和特性
  • ArrayList和Vector都是基于数组实现的,所以查询快,但是ArrayList是线程不安全的,Vector是线程

    安全的,其次,Vector的性能较差。
  • LinkedList是基于链表的,所以插入,删除,更改快。

heap和stack的区别

heap堆,stack栈。

  • 栈:存取快,仅次于CPU中的寄存器,栈中的数据大小和生存区是确定的,缺乏灵活性。栈数据可以共享
  • 堆:动态分配内存大小:堆中的GC可以周期的收取不再使用的对象。因为动态分配内存,存取慢。

JAVA面试题 (一)的更多相关文章

  1. java面试题及答案(转载)

    JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...

  2. 115个Java面试题和答案——终极列表(下)

    第一篇讨论了面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,本章主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servle ...

  3. Java面试题(全)

    JAVA部分 什么是反射机制?反射机制应用(Struts中反射机制的应用) 答:运行状态中,对于任意一个类,都可以知道它的所有属性和方法,对于任意一个对象都可以调用它的任意一个方法,这种动态获取信息以 ...

  4. Java面试题大全(四)

    JAVA代码查错 1. abstract class Name { private String name; public abstract boolean isStupidName(String n ...

  5. 大公司的Java面试题集

    找工作要面试,有面试就有对付面试的办法.以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及其它大小公司. 面试 ...

  6. 收集了50道基础的java面试题

    下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最 ...

  7. Java笔试题解答和部分面试题

    面试类  银行类的问题 问题一:在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? HashMap本身没有什么问题,有没有问题取决于你是如何使用它的.比如,你 ...

  8. 转:Java面试题集(51-70) http://blog.csdn.net/jackfrued/article/details/17403101

    Java面试题集(51-70) Java程序员面试题集(51-70) http://blog.csdn.net/jackfrued/article/details/17403101 摘要:这一部分主要 ...

  9. JAVA面试题集之基础知识

                           JAVA面试题集之基础知识 基础知识:  1.C 或Java中的异常处理机制的简单原理和应用. 当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就 ...

  10. [原]Java面试题-将字符串中数字提取出来排序后输出

    [Title][原]Java面试题-将字符串中数字提取出来排序后输出 [Date]2013-09-15 [Abstract]很简单的面试题,要求现场在纸上写出来. [Keywords]面试.Java. ...

随机推荐

  1. centos7环境下redis的安装

    一.redis的安装 1.获取redis的安装包 wget http://download.redis.io/releases/redis-4.0.6.tar.gz,如果未安装wget,先安装wget ...

  2. HDU 5984 题解 数学推导 期望

    Let’s talking about something of eating a pocky. Here is a Decorer Pocky, with colorful decorative s ...

  3. hdu 5534 Partial Tree(完全背包)

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5534 题解:这题一看有点像树形dp但是树形dp显然没什么思路.然后由于这里的约束几乎没有就 ...

  4. codeforces 456 D. A Lot of Games(字典数+博弈+思维+树形dp)

    题目链接:http://codeforces.com/contest/456/problem/D 题意:给n个字符串.进行k次游戏.每局开始,字符串为空串,然后两人轮流在末尾追加字符,保证新的字符串为 ...

  5. 牛客暑假多校 F RIKKA with Line Graph

    题意: 现在有一副完全图, 将他转化成线图. 线图就是 把原来的图上的边都变成点, 然后如果原来的任意2条边存在公共点, 他们就会有一条边, 边权为原来的2条边的和. 最后求出线图中的任意2点的最短路 ...

  6. Linux服务器部署JavaWeb项目完整教程

    本文大部分参考网上其他教程,是实际操作后回过头来的一些总结,希望可以对正在部署项目的你有所帮助. 基本环境:Centos7.tomcat8.jdk8,MySQL5.6.nginx 安装JDK yum ...

  7. 编码神器Lombok,学会后开发效率至少提高一倍!

    Lombok会利用注解自动生成javaBean中的getter.setter.equals.toString等一系列方法,大大提供开发效率,本文详细介绍下Lombok的安装及使用. 本文目录 一.Lo ...

  8. 【Redis】发布订阅

    一.概述 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. Redis 客户端可以订阅任意数量的频道. 下图展示了频道 channel1 ...

  9. XSS漏洞之加载远程js文件

    这次在对一个系统渗透测试过程中,发现一个XSS漏洞,可弹窗,并且没有httponly 但是在尝试加载远程js文件的时候发现,script标签被过滤掉了,准确的说应该是服务器后端在识别到输入内容有< ...

  10. python自学Day02(自学书籍python编程从入门到实践)

    第三章 列表简介 3.1 列表是什么 按特定顺序排列的元素组成. 元素类型可以是任意数据类型. 元素之间没有任何的关系. 在python中用中括号 [] 括起来并用 ,号隔开 3.1.1 访问列表元素 ...