JAVA随笔二
11.实现一个拷贝文件的工具类使用字节流还是字符流
使用字节流,因为有可能有字节流(图片,声音,图像等),不确定只包含字符流
12.讲一下线程的几种实现方式:
1.通过继承Thread类实现一个线程 (扩展性不强,java只支持单继承)
2.通过实现Runnable接口实现一个线程
Thread thread = new Thread(继承了Thread的对象/实现了Runnable的对象)
thread.setName("设置一个线程名称"); //区分线程,可以说也是一种规范
thread.start(); //启动线程 , 以后执行run方法
13.有没有使用过线程并发库?
java.util.current包中提供了线程的运行,线程池的创建,线程生命周期的控制
Java 通过 Executors 提供四个静态方法创建四种线程池,分别为:
newCachedThreadPool 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活 回收空闲线程,若无可回收,则新建线程。
newFixedThreadPool 创建一个定长线程池, 可控制线程最大并发数, 超出的线程会在队 列中等待。
newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
newSingleThreadExecutor 创建一个单线程化的线程池, 它只会用唯一的工作线程来执行 任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行
线程池的作用?
1、限定线程的个数,不会导致由于线程过多导致系统运行缓慢或崩溃
2、线程池不需要每次都去创建或销毁,节约了资源、
3、线程池不需要每次都去创建,响应时间更快。
14.servlet的生命周期(包括加载,实例化,初始化,请求处理以及服务结束)
加载servlet的class-->实例化servlet-->调用servlet的init完成初始化-->响应请求(servlet的service方法,service运行与请求对应的doXXX方法)-->servlet容器关闭时(servlet的destory方法)
15.什么是设计模式,常用的设计模式有哪些?
设计模式就是经过前人无数次的实践总结出的,设计过程中可以反复使用.可以解决特定问题的设计方法
设计模式有单例模式,工厂模式,代理模式,包装模式
饱汉模式:一出来就创建单实例
饥汉模式:需要的时候才创建单实例,创建时需要进行方法同步
工厂模式:SpringIOC就是使用了工厂模式 ,对象的创建交给一个工厂去创建
代理模式:SpringAOP就是使用的动态代理
16.servlet是用java编写的服务器端程序.而这些sevlet都要实现servlet这个接口,其主要功能在于交互式的浏览和修改数据,生成动态web内容.servlet运行于支持java的应用服务器中
继承HttpServlet类重写doGet和doPost方法,也可以重写service方法,完成对get和post请求的响应
17.get和post的区别:
get和post请求都是http的请求方式,get一般用于获取/查询资源信息,而post一般用于更新资源信息
get请求提交的数据会在地址栏显示出来,post不会显示出来
传输数据的大小:get请求传输的数据有限制,因为地址栏长度有限制, post没有数据限制
post安全性比get安全性高
18.servlet API 中forword()与redirect()的区别?
forward是服务器端的转向而redirect是客户端的跳转
使用forward浏览器的地址不会发生改变,而redirect会发生改变
forward是一次请求中完成,而redirect是重新发起请求
forward是在服务器端完成,而不用客户端重新发起请求,效率较高
19.jsp和servlet相同点和不同点,它们之间的联系?
jsp是servlet技术的扩展,所有的jsp文件都会被翻译为一个继承httpservlet的类,也就是jsp最终也是一个servlet,这个servlet对外提供服务
servlet和jsp最主要的不同点在于,servlet如果要实现HTML的功能,必须使用writer输出对应的HTML,而jsp的情况是java和HTML可以组合成一个扩展名为.jsp的文件,jsp侧重于视图,servlet主要用于控制逻辑
20.jsp九大内置对象:
request 用户端请求,此请求会包含来自get/post请求的参数
response 网页传回用户端的响应
pageContext 网页的属性在这里管理
session 与请求有关的会话期
application servlet 正在执行的内容
out 用来传送回应/响应的输出
config servlet 的构架部件
page JSP 网页本身
exception 针对错误网页,未捕捉的例外
四大作用域: pageContext , request , session , application 可以通过jstl从四大作用域中取值
jsp传递值 request session application cookie也能传值