java面试题
谦虚使人发胖
这个作者很懒,什么都没留下…
展开
-
精选30道Java笔试题解答
1. 下面哪些是Thread类的方法()A start() B run() C exit() D getPriority()答案:ABD解析:看Java API docs吧:http://docs.oracle.com/javase/7/docs/api/,exit()是System类的方法,如System.exit(0)。 2. 下面关于java.lang.E...转载 2017-05-09 15:00:28 · 439 阅读 · 0 评论 -
2017 最新java面试题(技术面试)
1、servlet执行流程客户端发出http请求,web服务器将请求转发到servlet容器,servlet容器解析url并根据web.xml找到相对应的servlet,并将request、response对象传递给找到的servlet,servlet根据request就可以知道是谁发出的请求,请求信息及其他信息,当servlet处理完业务逻辑后会将信息放入到response并响应到客户端。2、s...转载 2018-02-24 18:52:45 · 294 阅读 · 0 评论 -
防止SQL注入的几种方式
一、SQL注入简介SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库。二、SQL注入攻击的总体思路1.寻找到SQL注入的位置2.判断服务器类型和后台数据库类型3.针对不同的服务器和数据库特点进行SQL注入攻击三、SQL注入攻击实例比如在一个登录界面,要求输入用户名和密码:可以这样输入实现免帐号登录...转载 2018-03-26 16:13:19 · 4583 阅读 · 0 评论 -
JSON支持的数据类型
一、4种基本类型字符串(Strings) 如:"a"数字(numbers) 如:1,1.02布尔型(booleans) true falseNull值(null) null二、两种结构类型对象 {"name":"zhangsan","age":18} 键为String ,值为Json的任意数据类型之一。对象的键值对是无序的。数组 ...转载 2018-03-26 16:32:48 · 22433 阅读 · 1 评论 -
面试题
public class Null { public static void hello () { System.err.println("hello"); } public static void main(String[] args) { ((Null) null).hello(); }}正常运行,打印:hellopublic class Son extends Father...转载 2018-04-09 11:54:17 · 117 阅读 · 0 评论 -
JVM内存区域介绍
JVM内存主要可以分为五个区域:程序计数器、虚拟机栈、本地方法栈、堆、方法区。其中除了堆和方法区是线程共有的,其他几个区域都是线程私有的,下面分别介绍: 1、程序计数器 程序计数器是一块较小的内存,通过这个计数器来选取下一条需要执行的字节码指令。Java虚拟机的多线程是通过线程之间切换来轮流获得处理器的执行时间的,每个线程都有自己独立的程序计数器,它们互不影响,也就是线程私有的。如果执行的是Jav...转载 2018-04-02 13:37:14 · 118 阅读 · 0 评论 -
数据库表中,一般什么样的字段适合添加索引
主键、外键、where、group by、order by1. 表的主键、外键必须有索引2. 数据量超过300的表应该有索引3. 经常与其他表进行连接的表,在连接字段上应该建立索引4. 经常出现在where字句中的字段,特别是大表的字段,应该建立索引5. 索引应该建在选择型高的字段上6. 索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引7. 复合索引的建立需要进行仔细分析,尽量考虑使...原创 2018-04-03 13:47:43 · 14746 阅读 · 5 评论 -
悲观锁和乐观锁的实现
一、定义1.悲观锁:即很悲观,每次拿数据的时候都觉得数据会被人更改,所以拿数据的时候就把这条记录锁掉,这样别人就没法改这条数据了,一直到你的锁释放。2.乐观锁:即很乐观,查询数据的时候总觉得不会有人更改数据,等到更新的时候再判断这个数据有没有被人更改,有人更改了则本次更新失败。二、实现过程2.悲观锁:悲观锁的实现采用的数据库内部的锁机制,一个典型的倚赖数据库的悲观锁调用:select * from...转载 2018-04-03 14:05:26 · 288 阅读 · 0 评论 -
Java常用的类、包、接口
Java常用的类、包、接口类 ObjectStringDateThreadMathIntegerLong File (java.lang.Thread Thread类的定义:public class Thread extends Object implements Runnable)===========================包 java.lang.*;java.io.*;java...转载 2018-03-28 16:51:24 · 749 阅读 · 0 评论 -
IOC给编程带来的好处
IOC(inversion of control)的中文解释是“控制反转”或者“依赖注入”,它的实现目的是:我们可以通过配置文件来控制程序的流程,达到程序代码的优化。初学者往往弄不清楚为什么我们可以通过“控制反转”或“依赖注入”来优化我们的代码。今天我想借这个机会说说我对IOC程序设计原则的认识,以及它是怎么样把我们的程序弄“活”的。一、名词解释 首先我想说说我对“控制反转”和“依赖注入”的认识。...转载 2018-03-28 16:55:03 · 875 阅读 · 0 评论 -
Spring对Hibernate事务管理
在谈Spring事务管理之前我们想一下在我们不用Spring的时候,在Hibernate中我们是怎么进行数据操作的。在Hibernate中我们每次进行一个操作的的时候我们都是要先开启事务,然后进行数据操作,然后提交事务,关闭事务,我们这样做的原因是因为Hibernate默认的事务自动提交是false,他是需要我们人为的手动提交事务,假如你不想每次都手动提交事务的话,你可以在hibernate.c...转载 2018-04-11 10:36:39 · 164 阅读 · 0 评论 -
去除List集合中的重复值(四种好用的方法)
对list集合中的重复值进行处理,大部分是采用两种方法,一种是用遍历list集合判断后赋给另一个list集合,一种是用赋给set集合再返回给list集合。 但是赋给set集合后,由于set集合是无序的,原先的顺序就打乱了。所以我又想着能不能用set的特性进行去重又不打乱顺序呢? 试了一下,也是可以的,几种方法在不同情况下都有各自的优势。现在将代码写出来,比较一下。public class Test...转载 2018-04-04 11:18:38 · 6792 阅读 · 0 评论 -
Java代理模式(简单易懂)
一:代理模式(静态代理) 代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是指静态代理,也就是在代码中显式指定的代理。 静态代理由 业务实现类、业务代理类 两部分组成。业务实现类 负责实现主要的业务方法,业务代理类负责对调用的业务方法做拦截、过滤、预处理,主要是在方法中首先进行预处理动作,然后调用业务实现类的方法,还可以规定调用后的操作。我们在需要调...转载 2018-03-29 13:26:13 · 274 阅读 · 0 评论 -
深入浅出Java并发包—锁机制
前面我们看到了Lock和synchronized都能正常的保证数据的一致性(上文例子中执行的结果都是20000000),也看到了Lock的优势,那究竟他们是什么原理来保障的呢?今天我们就来探讨下Java中的锁机制!Synchronized是基于JVM来保证数据同步的,而Lock则是在硬件层面,依赖特殊的CPU指令实现数据同步的,那究竟是如何来实现的呢?我们一一看来!一、synchronized的实...转载 2018-02-26 10:39:43 · 292 阅读 · 0 评论 -
深入浅出Java并发包—锁(Lock)VS同步(synchronized)
今天我们来探讨一下Java中的锁机制。前面我们提到,在JDK1.5之前只能通过synchronized关键字来实现同步,这个前面我们已经提到是属于独占锁,性能并不高,因此JDK1.5之后开始借助JNI实现了一套高效的锁实现!JDK5以后锁的接口是JUC中的Lock,我们来先看一下他的相关API文档。 方法摘要 voidlock() 获取锁。 如果锁不可用,出于线程调度目的,将禁用当前线程,并且在...转载 2018-02-26 10:37:15 · 238 阅读 · 0 评论 -
SSH三大框架的工作原理及流程
Hibernate工作原理及为什么要用?原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.xml中的读取并解析映射信息3.通过config.buildSessionFactory();//创建SessionFactory4.sessionFactory.openSe转载 2017-04-21 15:56:49 · 315 阅读 · 0 评论 -
Spring 7大功能模块的作用
核心容器(Spring core)核心容器提供spring框架的基本功能。Spring以bean的方式组织和管理Java应用中的各个组件及其关系。Spring使用BeanFactory来产生和管理Bean,它是工厂模式的实现。BeanFactory使用控制反转(IoC)模式将应用的配置和依赖性规范与实际的应用程序代码分开。BeanFactory使用依赖注入的方式提供给组件依赖。Sp转载 2017-04-05 17:03:08 · 602 阅读 · 0 评论 -
Spring MVC 工作原理
SpringMVC框架介绍Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts转载 2017-03-25 11:48:10 · 392 阅读 · 0 评论 -
Java中普通代码块,构造代码块,静态代码块区别及代码示例
Java中普通代码块,构造代码块,静态代码块区别及代码示例//执行顺序:(优先级从高到低。)静态代码块>main方法>构造代码块>构造函数。其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。1 普通代码块//普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”public class C...转载 2017-03-17 17:45:08 · 308 阅读 · 0 评论 -
java web项目,post请求发送数据太大的处理方法
可以设置tomcat,server.xml中Connector中的属性,maxPostSize的值。Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxPostSize="0"/> 123maxPostSize,tomcat转载 2017-03-10 12:07:28 · 4506 阅读 · 0 评论 -
两年工作经验java面试题精炼汇总
1.什么是事务控制?答:事务控制就是将一系列操作当成一个不可拆分的逻辑单元,保证这些操作要么都成功,要么都失败。在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。事务是恢复和并发控制的基本单位。事务应该具有4个属性:原子性、一致性、隔离性、持续性。这四个属性通常称为ACID特性。原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作转载 2017-02-20 12:20:06 · 2461 阅读 · 0 评论 -
Java创建多线程的三种方法
Java多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。1、继承Thread类实现多线程继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程...转载 2016-05-04 14:23:42 · 3640 阅读 · 0 评论 -
Java中方法的重载与重写的区别
Java的方法重载(同一个类中多态性的表现): 就是在类中可以创建多个方法,他们的方法名相同,但是参数的个数或者参数类型不同。调用方时通过传递给它们的参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。Java的方法重写(父类与子类之间多态性的表现): 如果在子类中定义的某方法与其父类有相同的名称和参数(类型及个数),我们说该方法被重写 (原创 2016-04-20 15:55:31 · 357 阅读 · 0 评论 -
action service dao entity form 简单理解
action是表示层的 负责调用业务逻辑的服务组件 service是业务逻辑层的 实际上是调用了DAO的种种方法 DAO类里面就是对于数据库的操作了 Entity是hibernate对于表抽象出来的类 它和它所对应的表的是完全对应的 在DAO类中数据库操作方法中拼接的HQL语句中的就是Entity的名称 表示层的form对应的是jsp页面中的form表单 entity跟form之间没有什么直接转载 2016-03-29 09:15:34 · 1447 阅读 · 0 评论 -
List接口及其实现类、Map接口及其实现类
List接口及其实现类:特点:其元素以线性方式存储; 元素可重复; 元素有序; 可以对元素的位置精确控制;实现类:ArrayList LinkedList Vector StackList接口常用的方法: boolean add(E e): 向列表尾...原创 2016-07-05 10:12:11 · 5209 阅读 · 0 评论 -
java中常用算法(面试)
排序:对一组数据进行从小到大(或从大到小)的顺序排列。排序算法有很多种,这里介绍Java中面试经常出现的三种排序方式:冒泡、选择、快速。冒泡:顾明思义,是气泡从液体的底部到顶部的过程,就像串糖葫芦一样,先决定最下面的数据。在算法的过程中是把一组数据从第一位开始两两比较(第1位和第2位,第2位和第3位...),选择大的值或者比较小的值交换到后面的位置。以这转载 2017-04-05 16:30:00 · 852 阅读 · 0 评论 -
Spring IOC和AOP的理解
spring 的优点?1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能 5.容器提供了众多的辅助类,能加快应用的开发 6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等 7.spring属于低侵入...转载 2017-03-20 10:09:31 · 312 阅读 · 0 评论 -
根据公式计算值
public static void main(String[] args) { System.err.println(calValue("(1+3)*3/2")); } public static Double calValue(String str) { Double d = 0.0; Pattern p = Pattern.compile("[\u4e00-\u9fa5]...原创 2018-04-04 18:51:48 · 474 阅读 · 0 评论