首页 > 技术文章 > java自我总结

jueyushanlang 2017-11-30 11:43 原文

冰山小王子---java自我总结

一.网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
1)进程:子进程是父进程的复制品子进程获得父进程数据空间堆和栈的复制品
2)线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列
两者都可以提高程序的并发度,提高程序运行效率和响应时间
线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移
二.什么是反射?
在运行过程中:
1.对于任意一个类,可以知道这个类的属性和方法.
2.对于任意一个对象,可以调用这个对象的任意方法.
对于这种动态获取的信息,以及动态调用对象方法的功能称为反射机制.
java反射机制提供的功能:
1.运行时判断任意对象的所属类;
2.运行时构造任意类的对象;
3.运行时判断和调用对象的成员变量和方法;
4.生成动态代理.
三.什么是回调函数?
某个程序S(Student.main) 调用 服务程序A(Arrays) 中的某个方法(sort), 服务程序A的sort方法在某个时候反过来调用S的某个方法(compareTo),这种情况下,compareTo叫做S的回调方法。
例如:public class Student implements Comparable{
private int id;
private String name;
private int age;
private int score;
//构造器
//getter / setter方法
//回调方法
public int compareTo(Object obj){
return
this.id - ((Student)obj).id;
}
}
Student s1 = new Student(1,"a",18,89);
Student s2 = new Student(2,"x",22,94);
Student s3 = new Student(3,"w",19,78);
Student [] arrs = {s1,s2,s3};
Arrays.sort(arrs);

四.MVC的各个部分都有那些技术来实现?如何实现?

MVC是Model-View-Controller的简写。"Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), "View" 是应用的表示面(由JSP页面产生),"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。

五.servlet的生命周期

web 容器加载 servlet,生命周期开始。
通过调用 servlet 的 init()方法进行 servlet 的初始化。
通过调用 service()方法实现,根据请求的不同调用不同的 doGet()或者doPost()方法。
结束服务,web 容器调用 servlet 的 destroy()方法。

六. jsp与servlet的区别及联系

JSP 是Servlet 技术的扩展,本质上是Servlet 的简易方式,更强调应用的外表表达。JSP
编译后是"类servlet"。Servlet 和JSP 最主要的不同点在于,Servlet 的应用逻辑是在Java
文件中,并且完全从表示层中的HTML 里分离开来。而JSP 的情况是Java 和HTML 可以
组合成一个扩展名为.jsp 的文件。JSP 侧重于视图,Servlet 主要用于控制逻辑。

七. 删除一张表中所有数据的方式?

1.truncate table命令将快速删除数据表中的所有记录
2.delete产生rollback,如果删除在数据量的表速度会很慢,同时会占用很多的rollback,segments.truncate是DLL操作,不产生 rollback,速度会快一些。

八. 用一条sql语句取出所有姓名有重复的学员姓名和重复的记录数.

select name, count(*) from student group by name
having count(*) > 1 order by count(*) desc;

九. 去除oracle数据库 表中重复数据应有如下两种方法:

方法一:创建新表删除旧表法
1)create table student1 as select distinct id, name, score from student;
2)drop table student;
3)rename student1 to student;
方法二:使用rowid(地址)伪列
删除伪列地址除了最大地址值以外的记录
delete from temp where rowid not in (select max(rowid) from temp group by id);
删除伪列地址除了最大地址值以外的记录
delete from temp where rowid not in (select min(rowid) from temp group by id);

 

推荐阅读