
面试问题
文章平均质量分 55
牧码ya
这个作者很懒,什么都没留下…
展开
-
final、finally、finalize 的区别
final:用于声明属性( 变量 ),方法和类。分别表示属性不可变( 不可二次赋值 ),方法不可覆盖,被其修饰的类不可继承finally:异常处理语句 try/catch 结构的一部分,表示总是执行finalize:Object 类的一个方法,在垃圾回收器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。该方法更像是一个对象生命周期的临终方法,当...原创 2018-11-09 16:33:44 · 1135 阅读 · 0 评论 -
MyBatis中 # 和 $ 的区别?
#相当于对数据加上双引号,$相当于直接显示数据#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sq 时的值为:order by “111”;如果传入的值是id,则解析成的sql为:order by “id”$将传入的数据直接显示生成在sql中。如:order by useriduser_iduser...原创 2019-01-03 17:20:00 · 1154 阅读 · 0 评论 -
面试题:说下原生jdbc 操作数据库流程?
原生的jdbc操作数据库流程:1.注册驱动程序:Class.forName(“com.mysql.jdbc.Driver”);2.使用驱动管理类来获取数据连接对象:conn = DriverManager.getConnection(…);3.获取数据库操作对象:Statement stmt = conn.createStatement();4.定义操作的SQL语句5.执行SQL:st...原创 2018-12-25 08:25:40 · 2168 阅读 · 0 评论 -
抽象类和接口有什么不同点?
参数 抽象类 接口 默认的方法实现 它可以有默认的方法实现 接口完全是抽象的。它根本不存在方法的实 实现 ...原创 2018-12-25 09:31:16 · 1012 阅读 · 0 评论 -
怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串?
使用的函数:public String(byte bytes[], String charsetName) throws UnsupportedEncodingException { this(bytes, 0, bytes.length, charsetName);}代码:String s1 = "你好";String s2 = new String(s1....原创 2019-01-04 16:05:49 · 3435 阅读 · 0 评论 -
打印昨天的当前时刻
Calendar cal = Calendar.getInstance();cal.add(Calendar.DATE,-1);System.out.println("昨天的当前时刻:" + new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(cal.getTime()));原创 2019-01-04 16:15:38 · 2943 阅读 · 1 评论 -
HashMap和HashTable的区别
HashMap和HashTable的区别HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。HashMap是非线程安全的,HashTable是线程安全的HashMap的键和值都允许有null值存在,而HashTable则不行因为线程安全的问题,HashMap效率比Ha...原创 2019-01-05 09:23:58 · 2022 阅读 · 0 评论 -
为什么 1000==1000 返回为false,而 100==100 会返回为true
现象Integer a = 1000, b = 1000;System.out.println(a == b);//falseInteger c = 100, d = 100;System.out.println(c == d);//true分析== 运算比较的不是值而是引用当我们给一个Integer 对象赋一个int值的时候,会调用Integer类的静态方法valueOf,如...原创 2019-01-05 09:39:06 · 360 阅读 · 0 评论 -
如何控制多线程执行顺序
现象public class Test02 { static Thread thread1 = new Thread(new Runnable() { @Override public void run() { System.out.println("thread1"); } }); static ...原创 2019-01-05 11:03:06 · 1664 阅读 · 0 评论 -
MySQL存储引擎
存储引擎概述MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。例如,如果你在研究大量的临时数据,你也许需要使用内存MySQL存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理...原创 2019-01-07 14:47:36 · 928 阅读 · 0 评论 -
什么是Java 虚拟机?为什么Java 被称作是"平台无关的编程语言"?
一、什么是java虚拟机?java虚拟机(Java Virtual Machine 即 JVM)是执行字节码文件(.class)的虚拟机进程。java源程序(.java)被编译器编译成字节码文件(.class)。然后字节码文件,将由java虚拟机,解释成机器码(不同平台的机器码不同)。利用机器码操作硬件和操作系统二、为什么java被称为平台无关的编程语言?因为不同的平台装有不同的JVM,它...原创 2019-01-07 15:43:22 · 1548 阅读 · 0 评论 -
try和finally中都有return语句,执行哪一个return?
try 中的 return 语句调用的函数先于 finally 中调用的函数执行,也就是说 try 中的 return 语句先执行,finally 语句后执行,但try中的 return 并不是让函数马上返回结果,而是 return 语句执行后,将把返回结果放置进函数栈中,此时函数并不是马上返回,它要执行 finally 语句后才真正开始返回。但此时会出现两种情况:① 如果finally中也有r...原创 2019-01-07 17:51:07 · 2056 阅读 · 0 评论 -
try{ return }finally{}中的return
try 中的 return 语句调用的函数先于 finally 中调用的函数执行,也就是说 return 语句先执行,finally 语句后执行,但 return 并不是让函数马上返回结果,而是 return 语句执行后,将把返回结果放置进函数栈中,此时函数并不是马上返回结果,它要执行 finally 语句后才真正开始返回,,但此时finally块中的代码已经影响不了return返回的值了p...原创 2019-01-07 18:15:16 · 1052 阅读 · 0 评论 -
Mysql的四种隔离级别
隔离级别 脏读 不可重复读 幻读 读未提交 ✔ ✔ ✔ 读已提...原创 2019-01-03 14:56:10 · 986 阅读 · 0 评论 -
SQL中limit的用法
limit子句用于限制查询结果返回的数量# 格式:select * from tableName limit i,n# tableName:表名# i:为查询结果的索引值(默认从0开始)# n:为查询结果返回的数量# i与n之间使用英文逗号","隔开栗子:select * from Customer LIMIT 10;# 检索前10行数据,显示1-10条数据select ...原创 2019-01-03 16:01:40 · 335082 阅读 · 16 评论 -
事务的基本要素(ACID)
数据库事务(Transanction)正确执行的四个基本要素:1、原子性(Atomicity):事务开始后所有操作,要么全部完成,要么全部不完成,不可能停滞在中间环节。事务执行过程中出错,会回滚(Rollback)到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位2、一致性(Consistency):事务开始前和结束后,...原创 2019-01-03 15:11:01 · 3347 阅读 · 0 评论 -
Java 的基本数据类型都有哪些,各占几个字节
四类 八种 字节数 数据表示范围 整型 byte 1 -128~127 short ...原创 2018-11-09 17:37:25 · 2391 阅读 · 0 评论 -
SpringMVC 的工作原理
用户向服务器发送请求,请求被 SpringMVC 前端控制器DispatchServlet 捕获DispatcherServle 对请求 URL 进行解析,得到请求资源标识符(URL),然后根据该 URL 调用 HandlerMapping将请求映射到处理器 HandlerExcutionChainDispatchServlet 根据获得 Handler 选择一个合适的 HandlerA...原创 2018-11-09 21:17:04 · 1020 阅读 · 0 评论 -
Servlet简介及其生命周期详解
一、什么是Servlet?Servlet:是用Java编写的服务器端程序,一门用于开发动态web资源的技术。其主要功能在与交互式的浏览和修改数据,生成动态web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet的类。一般对Servlet的理解是后者。若想开发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个...原创 2018-11-16 10:36:38 · 1319 阅读 · 0 评论 -
电商项目中的SPU和SKU概念
SPUSPU:Standard Product Unit,标准产品单位。概念:SPU 是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗点讲,属性值、特性相同的货品就可以称为一个 SPUSPU是用来定位的例如:iphone8 就是一个 SPU,与商家、颜色、款式、套餐都无关SKUSKU:Stock Keeping Unit,库存量单...原创 2018-11-16 14:58:37 · 2732 阅读 · 0 评论 -
同源策略与JS跨域
为什么要跨域为了用户的信息安全,浏览器就引入了同源策略那么同源策略是如何保证用户的信息安全的呢?如果没有同源策略,你打开了你的银行账户页面A,又打开了另一个不相关的页面B,这时候如果B是恶意网站,B可以通过Javascript轻松访问和修改A页面中的内容现在我们广泛的使用cookie来维护用户的登录状态,而如果没有同源策略,这些cookie信息就会泄露,其他网站就可以冒充这个登录用户...原创 2018-11-19 10:49:12 · 1042 阅读 · 0 评论 -
重载(overload)和重写(override)的区别?
方法重载:方法名相同,参数列表【参数的顺序,类型,个数】不同重载与方法的返回值无关,存在于同一类中方法重写:参数列表和返回值类型必须相同重写发生在子类与父类之间...原创 2018-11-21 20:04:30 · 1291 阅读 · 0 评论 -
Java中创建线程的两种方式
创建线程方式一通过继承Thread类来创建并启动多线程Java使用java.lang.Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。每个线程的作用是完成一定的任务,实际上就是执行一段程序流即一段顺序执行的代码。Java使用线程执行体来代表这段程序流。Java中通过继承Thread类来创建并启动多线程的步骤如下:定义Thread类的子类,并重写该类的run...原创 2018-11-22 11:35:47 · 1029 阅读 · 0 评论 -
谈谈你对Spring的理解
Spring 是一个开源框架,为简化企业级应用开发而生Spring可以实现java模块化开发,贯穿表现层,业务层,逻辑层,实现了各个层之间的解耦合关系Spring 是一个 IOC 和 AOP 容器框架Spring 容器的核心:控制反转(IOC):传统的java 开发模式中,当需要一个对象时,我们会自己使用 new 或者 getInstance 等直接或者间接调用构造方法创建一个对象。...原创 2018-11-22 20:19:56 · 1899 阅读 · 0 评论 -
Java中的线程安全问题
线程安全线程安全:如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,此时我们就称之为是线程安全的。我们通过一个案例,演示线程的安全问题:电影院卖票,使用了A、B、C三个窗口进行卖票,电影票总数为100张采用线程对象来模拟卖票窗口A、B、C;使用Runnable接口的子类来模拟买的电影票模拟电影票...原创 2018-11-23 01:07:37 · 1195 阅读 · 0 评论 -
String、StringBuffer、StringBuilder以及对String不变性的理解
String、StringBuffer、StringBuilder都是final 类, 都不允许被继承String 长度是不可变的, StringBuffer、StringBuilder 长度是可变的;StringBuffer 是线程安全的, StringBuilder 不是线程安全的,但它们两个中的所有方法都是相同的,StringBuffer在StringBuilder的方法之上添加...原创 2018-11-20 09:21:22 · 956 阅读 · 0 评论 -
==和equals()的区别
equals 和 == 最大的区别是一个是方法一个是运算符==:如果比较的对象是基本数据类型,则比较的是数值是否相等;如果比较的是引用数据类型,则比较的是对象的地址值是否相等。equals():用来比较方法两个对象的内容是否相等。注意:equals 方法不能用于基本数据类型的变量,如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址。...原创 2018-11-20 10:26:33 · 184 阅读 · 1 评论 -
JSP九大内置对象及其作用和四大作用域详解
JSP中一共预先定义了9个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception1、request对象request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数...原创 2018-11-20 14:33:08 · 3011 阅读 · 0 评论 -
SpringMVC 常用注解
@RequestMapping 用于请求 url映射@RequestBody 注解实现接收 http 请求的 json 数据,将 json 数据转换为java对象@ResponseBody 注解实现将controller 方法返回对象转化为 json 响应给客户...原创 2018-12-26 18:22:15 · 1115 阅读 · 0 评论 -
Java中List集合去重的几种方式
准备数据:// 准备数据List<String> list = new ArrayList();list.add("a");list.add("b");list.add("c");list.add("c");list.add("b");list.add("a");1. 利用HashSet去重// 利用list中的元素创建HashSet集合,原创 2019-02-19 08:52:35 · 29559 阅读 · 0 评论