随笔分类 -  JAVA程序猿面试题

摘要:1.反射实现过程和作用 答:Java语言在编译之后会生成一个.class文件,反射就是通过字节码文件找到某一个类、类中的方法以及属性等。反射实现主要借助四个类:Class(类的对象)、Constructor(类的构造方法) Field(类中的属性对象)、Method(类中的方法对象)。作用:反射机制 阅读全文
posted @ 2019-09-30 12:00 WhyNott 阅读(101) 评论(0) 推荐(0)
摘要:1.请简述一下线程的sleep()方法和yield()方法有什么区别? 回答: ①sleep()方法给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会;yield()方法只会给相同优先级或更高优先级的线程以运行的机会; ①sleep()方法给其他线程运行机会时不考虑线程的优先 阅读全文
posted @ 2019-09-29 22:02 WhyNott 阅读(121) 评论(0) 推荐(0)
摘要:1.volatile保证有序性和可见性。这跟java内存模型有关, volatile保证了不同线程对共享变量操作时的可见性,也就是说当一个线程修改了volatile修饰的变量,另外一个线程会立即看到最新的值 volatile禁止JVM和处理器对使用volatile修饰的关键字进行指令进行重排序(比如 阅读全文
posted @ 2019-09-29 17:04 WhyNott 阅读(127) 评论(0) 推荐(0)
摘要:1.编译就是将java代码交给编译器进行语法检查,如果没有错误就生成.class文件 2.运行就是将字节码文件(.class)交给java虚拟机执行,如果没有逻辑错误,就成功出现结果。 编译期和运行期内存的分配 1.编译期仅仅知道内存分配的位置和大小,不做具体的分配操作 2.运行期确定真正的分配,确 阅读全文
posted @ 2019-09-28 21:33 WhyNott 阅读(3932) 评论(0) 推荐(0)
摘要:1 阅读全文
posted @ 2019-09-23 15:30 WhyNott 阅读(206) 评论(0) 推荐(0)
摘要:forward和redirect是什么? 是servlet的主要两种跳转方式,forward又叫转发,redirect叫重定向 区别(地址栏,数据共享,应用场景,效率,本质,次数) 1、从地址栏显示来说:forward是服务器内部重定向, 客户端浏览器的网址不会发生变化;redirect发生一个状态 阅读全文
posted @ 2019-09-23 14:51 WhyNott 阅读(4489) 评论(0) 推荐(0)
摘要:HTTP状态码是服务器传给浏览器的标识符,通过这个标识符,我们可以直接看到错误的原因; HTTP状态码的分类: 状态码一般分为1,2,3,4,5开头的,现在就来分类讨论: 1:资源未完全加载 2:200表示ok,表示服务器响应完成; 3:表示暂时性转移 301 redirect: 301 代表永久性 阅读全文
posted @ 2019-09-20 11:38 WhyNott 阅读(372) 评论(0) 推荐(0)
摘要:左连接:左表不受限制和右表中连接字段相等的字段 右连接:右边不受限制和左表连接字段相等的字段 inner join(内连接或等值连接):只返回两个表相等的字段 full join(全外连接):返回左右表的全部字段和两个表相等的字段 阅读全文
posted @ 2019-09-20 11:37 WhyNott 阅读(1655) 评论(0) 推荐(0)
摘要:答:在开发Web应用程序的时候,经常需要能做到数据共享或者在不同页面之间传递参数,而且一个会话中的数据可能会在不同地方使用,就需要专用的机制来传递和保存这些数据; 所谓会话,指的是从客户端打开与服务器的连接并发出请求到服务器响应客户端请求的全过程。会话跟踪则是对同一个用户对服务器的连续请求和接受响应 阅读全文
posted @ 2019-09-19 15:51 WhyNott 阅读(449) 评论(0) 推荐(0)
摘要:1、什么是Servlet:是Java提供用于开发Web服务器的一个组件,运行在服务器端,是独立的Java类(在Java程序中邪HTML代码),用来生成动态Web页面和传统的CGI(公共网关接口),和其他CGI技术相比,具有更好的可移植性,执行效率高、功能强大、使用方便、可扩展性强、更安全。 2、技术 阅读全文
posted @ 2019-09-19 11:40 WhyNott 阅读(136) 评论(0) 推荐(0)
摘要:选择排序 插入排序 冒泡排序 归并排序 快速排序 希尔排序 堆排序 阅读全文
posted @ 2019-09-18 10:45 WhyNott 阅读(88) 评论(0) 推荐(0)
摘要:具有封装、继承、抽象、多态 1、封装:封装是保证软件内部具有优良模块性的基础,目标是高内聚,低耦合,防止程序相互依赖而带来影响,对象是封装的基本单位。把握一个原则:对同一事物进行操作的方法和相关方法放在同一个类中,把方法和他操作的数据放在同一个类中。 2、抽象:抽象就是找出一些事物相似和共性之处,然 阅读全文
posted @ 2019-09-18 10:33 WhyNott 阅读(777) 评论(0) 推荐(0)
摘要:1、继承Thread类,重写run方法 2、实现Runnable接口,实现改接口的run方法 3、实现callable接口,重写call方法 4、通过线程池创建线程 前面两种可以归结为一类:无返回值,原因很简单,通过重写run方法,run方式的返回值是void,所以没办法返回结果 后两种归为一类:有 阅读全文
posted @ 2019-09-18 09:30 WhyNott 阅读(531) 评论(0) 推荐(0)
摘要:1、抽象类是is-a的关系如果B是A 就用抽象类,而接口是like-a关系,如果B像A就用接口 2、接口和抽象类都不能被实例化,但是接口不能有构造函数,抽象类却可以有构造函数 3、接口里的变量默认都是 public static final(只能用public,其他修饰符不可以),抽象类修饰符是pu 阅读全文
posted @ 2019-09-17 21:06 WhyNott 阅读(131) 评论(0) 推荐(0)
摘要:一.Java中关于String类的常用方法 整理了几个StringBuilder 中的几个方法, erase的3种用法: (1)string& erase ( size_t pos = 0, size_t n = npos );(2)iterator erase ( iterator positio 阅读全文
posted @ 2019-09-17 14:55 WhyNott 阅读(151) 评论(0) 推荐(0)
摘要:结论:1、不管有没有异常finally中的代码块总会执行 2、当try和catch中有return时,finally也会执行 3、因为会遇到很多种情况,当他们都有return时,只有finally的return才是结束方法的,其他两个一律忽略 4、 finally最好不包含return,否则程序会提 阅读全文
posted @ 2019-09-16 14:24 WhyNott 阅读(216) 评论(0) 推荐(0)
摘要:1、在实际项目中,如果想要把数组中的内容打印出来,直接使用toString方法只会打印出数组的地址,因此需要使用Arrays的toString方法,可以从其内部实现中看出来,该方法支持入参可以是long,float,double,int,boolean,byte,object型的数组。 2、Stri 阅读全文
posted @ 2019-07-29 17:27 WhyNott 阅读(149) 评论(0) 推荐(0)
摘要:1、请对比synchronized与java.util.concurrent.locks.Lock的异同 synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程(例如线程A),运行到这个方法时,都要检查有没有其它线程B(或者C、 D等)正在用这个方法(或者该类的其他同步方法),有的 阅读全文
posted @ 2019-07-25 22:49 WhyNott 阅读(137) 评论(0) 推荐(0)
摘要:1、运算符instanceof是JAVA中的一个二元运算符,作业是判断一个引用类型(八个类型)的变量所指向的对象是否是一个类(或接口、抽象类、父类),返回boolean类型的数据。 ps:所有类都是Object的子类 2、一个接口只有方法的声明,没有方法的实现。抽象类和接口不可以被实例化。只有关键字 阅读全文
posted @ 2019-07-21 18:08 WhyNott 阅读(111) 评论(0) 推荐(0)