基本概念前端
操做系统中 heap 和 stack 的区别 什么是基于注解的切面实现 什么是 对象/关系 映射集成模块 什么是 Java 的反射机制 什么是 ACID BS与CS的联系与区别 Cookie 和 Session的区别 fail-fast 与 fail-safe 机制有什么区别 get 和 post请求的区别 Interface 与 abstract 类的区别 IOC的优势是什么 IO 和 NIO的区别,NIO优势 Java 8 / Java 7 为咱们提供了什么新功能 什么是竞态条件? 举个例子说明。 JRE、JDK、JVM 及 JIT 之间有什么不一样 MVC的各个部分都有那些技术来实现?如何实现? RPC 通讯和 RMI 区别 什么是 Web Service(Web服务) JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。 WEB容器主要有哪些功能? 并请列出一些常见的WEB容器名字。 一个".java"源文件中是否能够包含多个类(不是内部类)?有什么限制 简单说说你了解的类加载器。是否实现过类加载器 解释一下什么叫AOP(面向切面编程) 请简述 Servlet 的生命周期及其相关的方法 请简述一下 Ajax 的原理及实现步骤 简单描述Struts的主要功能 什么是 N 层架构 什么是CORBA?用途是什么 什么是Java虚拟机?为何Java被称做是“平台无关的编程语言” 什么是正则表达式?用途是什么?哪一个包使用正则表达式来实现模式匹配 什么是懒加载(Lazy Loading) 什么是尾递归,为何须要尾递归 什么是控制反转(Inversion of Control)与依赖注入(Dependency Injection) Java架构/分布式/高并发学习交流群:725633148java
关键字react
finalize 什么是finalize()方法 finalize()方法何时被调用 析构函数(finalization)的目的是什么 final 和 finalize 的区别 final final关键字有哪些用法 final 与 static 关键字能够用于哪里?它们的做用是什么 final, finally, finalize的区别 final、finalize 和 finally 的不一样之处? 可否在运行时向 static final 类型的赋值 使用final关键字修饰一个变量时,是引用不能变,仍是引用的对象不能变 一个类被声明为final类型,表示了什么意思 throws, throw, try, catch, finally分别表明什么意义 Java 有几种修饰符?分别用来修饰什么 volatile volatile 修饰符的有过什么实践 volatile 变量是什么?volatile 变量和 atomic 变量有什么不一样 volatile 类型变量提供什么保证?能使得一个非原子操做变成原子操做吗 能建立 volatile 数组吗? transient变量有什么特色 super何时使用 public static void 写成 static public void会怎样 说明一下public static void main(String args[])这段声明里每一个关键字的做用 请说出做用域public, private, protected, 以及不写时的区别 sizeof 是Java 的关键字吗 static static class 与 non static class的区别 static 关键字是什么意思?Java中是否能够覆盖(override)一个private或者是static的方法 静态类型有什么特色 main() 方法为何必须是静态的?能不能声明 main() 方法为非静态 是否能够从一个静态(static)方法内部发出对非静态(non-static)方法的调用 静态变量在何时加载?编译期仍是运行期?静态代码块加载的时机呢 成员方法是否能够访问静态变量?为何静态方法不能访问成员变量 switch switch 语句中的表达式能够是什么类型数据 switch 是否能做用在byte 上,是否能做用在long 上,是否能做用在String上 while 循环和 do 循环有什么不一样 操做符正则表达式
&操做符和&&操做符有什么区别? a = a + b 与 a += b 的区别? 逻辑操做符 (&,|,^)与条件操做符(&&,||)的区别 3*0.1 == 0.3 将会返回什么?true 仍是 false? float f=3.4; 是否正确? short s1 = 1; s1 = s1 + 1;有什么错? 数据结构算法
基础类型(Primitives)数据库
Comparator 与 Comparable 接口是干什么的?列出它们的区别 对象编程
拷贝(clone) 如何实现对象克隆 深拷贝和浅拷贝区别 深拷贝和浅拷贝如何实现激活机制 写clone()方法时,一般都有一行代码,是什么 比较 在比较对象时,"==" 运算符和 equals 运算有何区别 若是要重写一个对象的equals方法,还要考虑什么 两个对象值相同(x.equals(y) == true),但却可有不一样的hash code,这句话对不对 构造器 构造器链是什么 建立对象时构造器的调用顺序 不可变对象 什么是不可变象(immutable object) 为何 Java 中的 String 是不可变的(Immutable) 如何构建不可变的类结构?关键点在哪里 能建立一个包含可变对象的不可变对象吗 如何对一组对象进行排序 方法设计模式
构造器(constructor)是否可被重写(override) 方法能够同时便是 static 又是 synchronized 的吗 abstract 的 method是否可同时是 static,是否可同时是 native,是否可同时是synchronized Java支持哪一种参数传递类型 一个对象被看成参数传递到一个方法,是值传递仍是引用传递 当一个对象被看成参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里究竟是值传递仍是引用传递 咱们可否重载main()方法 若是main方法被声明为private会怎样 GC数组
概念 GC是什么?为何要有GC 何时会致使垃圾回收 GC是怎么样运行的 新老以及永久区是什么 GC 有几种方式?怎么配置 何时一个对象会被GC? 如何判断一个对象是否存活 System.gc() Runtime.gc()会作什么事情? 能保证 GC 执行吗 垃圾回收器能够立刻回收内存吗?有什么办法主动通知虚拟机进行垃圾回收? Minor GC 、Major GC、Young GC 与 Full GC分别在何时发生 垃圾回收算法的实现原理 若是对象的引用被置为null,垃圾收集器是否会当即释放对象占用的内存? 垃圾回收的最佳作法是什么 GC收集器有哪些 垃圾回收器的基本原理是什么? 串行(serial)收集器和吞吐量(throughput)收集器的区别是什么 Serial 与 Parallel GC之间的不一样之处 CMS 收集器 与 G1 收集器的特色与区别 CMS垃圾回收器的工做过程 JVM 中一次完整的 GC 流程是怎样的? 对象如何晋升到老年代 吞吐量优先和响应优先的垃圾收集器选择 GC策略 举个实际的场景,选择一个GC策略 JVM的永久代中会发生垃圾回收吗 收集方法 标记清除、标记整理、复制算法的原理与特色?分别用在什么地方 若是让你优化收集方法,有什么思路 JVM浏览器
参数 说说你知道的几种主要的jvm 参数 -XX:+UseCompressedOops 有什么做用 类加载器(ClassLoader) Java 类加载器都有哪些 JVM如何加载字节码文件 内存管理 JVM内存分哪几个区,每一个区的做用是什么 一个对象从建立到销毁都是怎么在这些部分里存活和转移的 解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法 JVM中哪一个参数是用来控制线程的栈堆栈小 简述内存分配与回收策略 简述重排序,内存屏障,happen-before,主内存,工做内存 Java中存在内存泄漏问题吗?请举例说明 简述 Java 中软引用(SoftReferenc)、弱引用(WeakReference)和虚引用 内存映射缓存区是什么 jstack,jstat,jmap,jconsole怎么用 32 位 JVM 和 64 位 JVM 的最大堆内存分别是多数?32 位和 64 位的 JVM,int 类型变量的长度是多数? 怎样经过 Java 程序来判断 JVM 是 32 位 仍是 64 位 JVM自身会维护缓存吗?是否是在堆中进行对象分配,操做系统的堆仍是JVM本身管理堆 什么状况下会发生栈内存溢出 双亲委派模型是什么 多线程
基本概念
基本概念 Error 和 Exception有什么区别 UnsupportedOperationException是什么 NullPointerException 和 ArrayIndexOutOfBoundException 之间有什么相同之处 什么是受检查的异常,什么是运行时异常 运行时异常与通常异常有何异同 简述一个你最多见到的runtime exception(运行时异常) finally finally关键词在异常处理中如何使用 若是执行finally代码块以前方法返回告终果,或者JVM退出了,finally块中的代码还会执行吗 try里有return,finally还执行么?那么紧跟在这个try后的finally {}里的code会不会被执行,何时被执行,在return前仍是后 在什么状况下,finally语句不会执行 throw 和 throws 有什么区别? OOM你遇到过哪些状况?你是怎么搞定的? SOF你遇到过哪些状况? 既然咱们能够用RuntimeException来处理错误,那么你认为为何Java中还存在检查型异常 当本身建立异常类的时候应该注意什么 致使空指针异常的缘由 异常处理 handle or declare 原则应该如何理解 怎么利用 JUnit 来测试一个方法的异常 catch块里别不写代码有什么问题 你曾经自定义实现过异常吗?怎么写的 什么是 异常链 在try块中能够抛出异常吗 JDBC
经过 JDBC 链接数据库有哪几种方式
阐述 JDBC 操做数据库的基本步骤
JDBC 中如何进行事务处理
什么是 JdbcTemplate
什么是 DAO 模块
使用 JDBC 操做数据库时,如何提高读取数据的性能?如何提高更新数据的性能
列出 5 个应该遵循的 JDBC 最佳实践
IO
File
解释下多态性(polymorphism),封装性(encapsulation),内聚(cohesion)以及耦合(coupling) 多态的实现原理 封装、继承和多态是什么 对象封装的原则是什么? 类 得到一个类的类对象有哪些方式 重载(Overload)和重写(Override)的区别。重载的方法可否根据返回类型进行区分? 说出几条 Java 中方法重载的最佳实践 抽象类 抽象类和接口的区别 抽象类中是否能够有静态的main方法 抽象类是否可实现(implements)接口 抽象类是否可继承具体类(concrete class) 匿名类(Anonymous Inner Class) 匿名内部类是否能够继承其它类?是否能够实现接口 内部类 内部类分为几种 内部类能够引用它的包含类(外部类)的成员吗 请说一下 Java 中为何要引入内部类?还有匿名内部类 继承 继承(Inheritance)与聚合(Aggregation)的区别在哪里 继承和组合之间有什么不一样 为何类只能单继承,接口能够多继承 存在两个类,B 继承 A,C 继承 B,能将 B 转换为 C 么?如 C = (C) B 若是类 a 继承类 b,实现接口c,而类 b 和接口 c 中定义了同名变量,请问会出现什么问题 接口 接口是什么 接口是否可继承接口 为何要使用接口而不是直接使用具体类?接口有什么优势 泛型
泛型的存在是用来解决什么问题 泛型的经常使用特色 List可否转为List 工具类
日历 Calendar Class的用途 如何在Java中获取日历类的实例 解释一些日历类中的重要方法 GregorianCalendar 类是什么 SimpleTimeZone 类是什么 Locale类是什么 如何格式化日期对象 如何添加小时(hour)到一个日期对象(Date Objects) 如何将字符串 YYYYMMDD 转换为日期 Math Math.round()什么做用?Math.round(11.5) 等于多少?Math.round(-11.5)等于多少? XML XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?DOM 和 SAX 解析器有什么不一样? Java解析XML的方式 用 jdom 解析 xml 文件时如何解决中文问题?如何解析 你在项目中用到了 XML 技术的哪些方面?如何实现 动态代理
描述动态代理的几种实现方式,分别说出相应的优缺点 设计模式
什么是设计模式(Design Patterns)?你用过哪一种设计模式?用在什么场合 你知道哪些商业级设计模式? 哪些设计模式能够增长系统的可扩展性 单例模式
用一句话归纳 Web 编程的特色 Google是如何在一秒内把搜索结果返回给用户 哪一种依赖注入方式你建议使用,构造器注入,仍是 Setter方法注入 树(二叉或其余)造成许多普通数据结构的基础。请描述一些这样的数据结构以及什么时候可使用它们 某一项功能如何设计 线上系统忽然变得异常缓慢,你如何查找问题 什么样的项目不适合用框架 新浪微博是如何实现把微博推给订阅者 简要介绍下从浏览器输入 URL 开始到获取到请求界面以后 Java Web 应用中发生了什么 请你谈谈SSH整合 高并发下,如何作到安全的修改同一行数据 12306网站的订票系统如何实现,如何保证不会票不被超卖 网站性能优化如何优化的 聊了下曾经参与设计的服务器架构 请思考一个方案,实现分布式环境下的 countDownLatch 请思考一个方案,设计一个能够控制缓存整体大小的自动适应的本地缓存 在你的职业生涯中,算得上最困难的技术挑战是什么 如何写一篇设计文档,目录是什么 大写的O是什么?举几个例子 编程中本身都怎么考虑一些设计原则的,好比开闭原则,以及在工做中的应用 解释一下网络应用的模式及其特色 设计一个在线文档系统,文档能够被编辑,如何防止多人同时对同一份文档进行编辑更新 说出数据链接池的工做机制是什么 怎么获取一个文件中单词出现的最高频率 描述一下你最经常使用的编程风格 若是有机会从新设计大家的产品,你会怎么作 如何搭建一个高可用系统 如何启动时不需输入用户名与密码 如何在基于Java的Web项目中实现文件上传和下载 如何实现一个秒杀系统,保证只有几位用户能买到某件商品。 如何实现负载均衡,有哪些算法能够实现 如何设计一个购物车?想一想淘宝的购物车如何实现的 如何设计一套高并发支付方案,架构如何设计 如何设计创建和保持 100w 的长链接 如何避免浏览器缓存。 如何防止缓存雪崩 若是AB两个系统互相依赖,如何解除依 若是有人恶意建立非法链接,怎么解决 若是有几十亿的白名单,天天白天须要高并发查询,晚上须要更新一次,如何设计这个功能 若是系统要使用超大整数(超过long长度范围),请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算) 若是要设计一个图形系统,请你设计基本的图形元件(Point,Line,Rectangle,Triangle)的简单实现 若是让你实现一个并发安全的链表,你会怎么作 应用服务器与WEB 服务器的区别?应用服务器怎么监控性能,各类方式的区别?你使用过的应用服务器优化技术有哪些 大型网站在架构上应当考虑哪些问题 有没有处理过线上问题?出现内存泄露,CPU利用率标高,应用无响应时如何处理的 最近看什么书,印象最深入的是什么 描述下经常使用的重构技巧 你使用什么版本管理工具?分支(Branch)与标签(Tag)之间的区别在哪里 你有了解过存在哪些反模式(Anti-Patterns)吗 你用过的网站前端优化的技术有哪些 如何分析Thread dump 你如何理解AOP中的链接点(Joinpoint)、切点(Pointcut)、加强(Advice)、引介(Introduction)、织入(Weaving)、切面(Aspect)这些概念 你是如何处理内存泄露或者栈溢出问题的 大家线上应用的 JVM 参数有哪些 怎么提高系统的QPS和吞吐量 知识面
解释什么是 MESI 协议(缓存一致性) 谈谈 reactor 模型 Java 9 带来了怎样的新功能 Java 与 C++ 对比,C++ 或 Java 中的异常处理机制的简单原理和应用 简单讲讲 Tomcat 结构,以及其类加载器流程 虚拟内存是什么 阐述下 SOLID 原则 请简要讲一下你对测试驱动开发(TDD)的认识 CDN实现原理 Maven 和 ANT 有什么区别 UML中有哪些经常使用的图 Linux Linux 下 IO 模型有几种,各自的含义是什么。 Linux 系统下你关注过哪些内核参数,说说你知道的 Linux 下用一行命令查看文件的最后五行 平时用到哪些 Linux 命令 用一行命令输出正在运行的 Java 进程 使用什么命令来肯定是否有 Tomcat 实例运行在机器上 什么是 N+1 难题 什么是 paxos 算法 什么是 restful,讲讲你理解的 restful 什么是 zab 协议 什么是领域模型(domain model)?贫血模型(anaemic domain model) 和充血模型(rich domain model)有什么区别 什么是领域驱动开发(Domain Driven Development) 介绍一下了解的 Java 领域的 Web Service 框架 Web Server、Web Container 与 Application Server 的区别是什么 微服务(MicroServices)与巨石型应用(Monolithic Applications)之间的区别在哪里 描述 Cookie 和 Session 的做用,区别和各自的应用范围,Session工做原理 你经常使用的持续集成(Continuous Integration)、静态代码分析(Static Code Analysis)工具备哪些 简述下数据库正则化(Normalizations) KISS,DRY,YAGNI 等原则是什么含义 分布式事务的原理,优缺点,如何使用分布式事务? 布式集群下如何作到惟一序列号 网络 HTTPS 的加密方式是什么,讲讲整个加密解密流程 HTTPS和HTTP的区别 HTTP链接池实现原理 HTTP集群方案 Nginx、lighttpd、Apache三大主流 Web服务器的区别 是否看过框架的一些代码 持久层设计要考虑的问题有哪些?你用过的持久层框架有哪些 数值提高是什么 你能解释一下里氏替换原则吗 你是如何测试一个应用的?知道哪些测试框架 传输层常见编程协议有哪些?并说出各自的特色 编程题
计算加班费
加班10小时如下加班费是时薪的1.5倍。加班10小时或以上,按4元/时算。提示:(一个月工做26天,一天正常工做8小时)
计算1000月薪,加班9小时的加班费 计算2500月薪,加班11小时的加班费 计算1000月薪,加班15小时的加班费 卖东西
一家商场有红苹果和青苹果出售。(红苹果5元/个,青苹果4元/个)。
模拟一个进货。红苹果跟青苹果各进200个。 模拟一个出售。红苹果跟青苹果各买出10个。每卖出一个苹果须要进行统计。 提示:一个苹果是一个单独的实体。
日期提取
有这样一个时间字符串:2008-8-8 20:08:08 , 请编写可以匹配它的正则表达式,并编写Java代码将日期后面的时分秒提取出来,即:20:08:08
线程
8设计4个线程,其中两个线程每次对j增长1,另外两个线程对j每次减小1。写出程序。 用Java写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出 wait-notify 写一段代码来解决生产者-消费者问题 数字
判断101-200之间有多少个素数,并输出全部素数 用最有效率的方法算出2乘以17等于多少 有 1 亿个数字,其中有 2 个是重复的,快速找到它,时间和空间要最优 2 亿个随机生成的无序整数,找出中间大小的值 10 亿个数字里里面找最小的 10 个 1到1亿的天然数,求全部数的拆分后的数字之和,如286 拆分红二、八、6,如1到11拆分后的数字之和 => 1 + ... + 9 + 1 + 0 + 1 + 1 一个数若是刚好等于它的因子之和,这个数就称为 “完数 “。例如6=1+2+3.编程 找出1000之内的全部完数 一个数组中全部的元素都出现了三次,只有一个元素出现了一次找到这个元素 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共通过多少米?第10次反弹多高? 求100-1000内质数的和 求1到100的和的平均数 求s=a+a+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 求出1到100的和 算出1到40的质数,放进数组里 显示放组里的数 找出第[5]个数 删除第[9]个数,再显示删除后的第[9]个 有 3n+1 个数字,其中 3n 个中是重复的,只有 1 个是不重复的,怎么找出来。 有一组数1.1.2.3.5.8.13.21.34。写出程序随便输入一个数就能给出和前一组数字同规律的头5个数 计算指定数字的阶乘 开发 Fizz Buzz 给定一个包含 N 个整数的数组,找出丢失的整数 一个排好序的数组,找出两数之和为m的全部组合 将一个正整数分解质因数。例如:输入90,打印出90=233*5。 打印出全部的 “水仙花数 “,所谓 “水仙花数 “是指一个三位数,其各位数字立方和等于该数自己。例如:153是一个 “水仙花数 “,由于153=1的三次方+5的三次方+3的三次方 原地交换两个变量的值 找出4字节整数的中位数 找到整数的平方根 实现斐波那契 网络 用Java Socket编程,读服务器几个字符,再写入本地显示 反射
反射机制提供了什么功能? 反射是如何实现的 哪里用到反射机制 反射中 Class.forName 和 ClassLoader 区别 反射建立类实例的三种方式是什么 如何经过反射调用对象的方法 如何经过反射获取和设置对象私有字段的值 反射机制的优缺点 数据库
写一段 JDBC 连Oracle的程序,并实现数据查询 算法
50我的围坐一圈,当数到三或者三的倍数出圈,问剩下的人是谁,原来的位置是多少 实现一个电梯模拟器用 写一个冒泡排序 写一个折半查找 随机产生20个不能重复的字符并排序 写一个函数,传入 2 个有序的整数数组,返回一个有序的整数数组 写一段代码在遍历 ArrayList 时移除一个元素 古典问题:有一对兔子,从出生后第3个月起每月都生一对兔子,小兔子长到第四个月后每月又生一对兔子,假如兔子都不死,问每月的兔子总数为多少 约瑟芬环游戏 正则
请编写一段匹配IP地址的正则表达式 写出一个正则表达式来判断一个字符串是不是一个数字 字符串
写一个方法,入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数。 写一个程序找出全部字符串的组合,并检查它们是不是回文串 写一个字符串反转函数,输入abcde转换成edcba代码 小游戏,倒转句子中的单词 将GB2312编码的字符串转换为ISO-8859-1编码的字符串 请写一段代码来计算给定文本内字符“A”的个数。分别用迭代和递归两种方式 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 可是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个” 给定 2 个包含单词列表(每行一个)的文件,编程列出交集 打印出一个字符串的全部排列 将一个键盘输入的数字转化成中文输出(例如:输入1234567,输出:一百二拾三万四千五百六拾七) 在Web应用开发过程当中常常遇到输出某种编码的字符,如从 GBK 到 ISO8859-1等,如何输出一个某种编码的字符串