java同一包protect_Java基础知识 - 欢迎来到夜故事,一个人的故事 - OSCHINA - 中文开源技术交流社区...
发布日期:2021-06-24 13:19:35 浏览次数:2 分类:技术文章

本文共 3260 字,大约阅读时间需要 10 分钟。

1、public、protect、private以及不声明私有性之间区别?

私有性

当前类

同一包下

子孙类

其他类

public

protect

×

friendly

×

×

private

×

×

×

不声明时是friendly级别

2、ArrayList和Vector的区别,HashMap和Hashtable的区别?

ArrayList

a.异步,非线程安全;b.由于非同步,性能好;c.数据超过本身容量,只会按本身容量的50%增加,节约内存空间

Vector

a.同步,线程安全;b.由于同步,性能不好;③数据超过本身容量,会翻倍增加,耗内存空间

HashMap

a.异步,非线程安全;b.由于非同步,性能好

HashTable

a.同步,线程安全;b.由于同步,性能不好

3、char型变量能不能定义为一个中文?为什么?

char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。

不过,如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。

补充说明:unicode编码占用两个字节,所以,char类型的变量也是占用两个字节。

4、多线程有几种表示方法,都是什么?同步有几种实现方法,都是什么?

多线程有两种实现方法:

方法一:继承Thread类,重写方法run();

方法二:实现Runnable接口,实现方法run();

实现同步有几种方法:

例如:synchronized,wait,notify都可以实现同步。

5、内部类的实现方式?

6、垃圾回收机制,如何优化程序?

程序无法控制直接进行回收,但可以间接设置进行回收,有以下几种方式:

a.将对象设置成null,比如:

student=null

b.重新为引用变量赋值,比如:

Student student = new Student()

student = new Student();

c.对于“三角恋”关系,比如:

Student a = new Student();

Student b = new Student();

Student c = new Student();

a = b;

b = c;

c = a;

以上就是属于“三角恋”关系,如何进行间接设置回收:

a = null;b=null;c=null;

这样就都会在堆上,会被回收。

d.强制回收,System.gc():

但也不能保证立即回收。

7、float型float f=3.4是否正确?

不正确。

精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4 或float f = 3.4f

在java里面,没小数点的默认是int,有小数点的默认是 double;

编译器可以自动向上转型,如int 转成 long 系统自动转换没有问题,因为后者精度更高

double 转成 float 就不能自动做了,所以后面的加上个 f

=========jsp=======

1、jsp有哪些内置对象?作用分别是什么?

九大内置对象,分别为:

Page,pageContext,request,response,session,application,out,config,exception

Page指的是JSP被翻译成Servlet的对象的引用.

pageContext对象可以用来获得其他8个内置对象,还可以作为JSP的域范围对象使用.pageContext中存的值是当前的页面的作用范围》

request代表的是请求对象,可以用于获得客户机的信息,也可以作为域对象来使用,使用request保存的数据在一次请求范围内有效。

Session代表的是一次会话,可以用于保存用户的私有的信息,也可以作为域对象使用,使用session保存的数据在一次会话范围有效

Application:代表整个应用范围,使用这个对象保存的数据在整个web应用中都有效。

Response是响应对象,代表的是从服务器向浏览器响应数据.

Out:JSPWriter是用于向页面输出内容的对象

Config:指的是ServletConfig用于JSP翻译成Servlet后 获得Servlet的配置的对象.

Exception:在页面中设置isErrorPage=”true”,即可使用,是Throwable的引用.用来获得页面的错误信息。

2、jsp有哪些动作?作用分别是什么?

6种动作,分别是:

sp:include:在页面被请求的时候引入一个文件。

jsp:useBean:寻找或者实例化一个JavaBean。

jsp:setProperty:设置JavaBean的属性。

jsp:getProperty:输出某个JavaBean的属性。

jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。

jsp:forward:把请求转到一个新的页面。

1)两种跳转方式区别

a.forward跳转: forward跳转:服务器端跳转,地址栏不改变;

b.response跳转:response.sendRedirect("跳转页面地址"); response跳转:客户端跳转,地址栏改变;

request.getRequestDispatcher("/message.jsp").forward(request, response);

2)两种include方式区别:

有两种实现方法,动态,静态。

动态:用于包含动态页面,并且可以随时检查页面的变化,采用jsp:include动作可以实现,例如:

静态,适合于包含静态页面,不检查页面的变化,采用include伪码实现

=========servlet=======

1、说一说Servlet的生命周期?

a.加载和实例化:创建servlet对象

b.初始化init:建立数据库连接,初始化参数,从ServletConfig拿

c.服务service:处理业务逻辑

d.销毁destory:Servlet从服务中被移除时进行销毁

2、Servlet版本间的不同?

太多不同,我只记得2.5以上的servlet可以多个url映射到同一个servlet

=========jdbc=======

1、连接jdbc的基本流程

a.加载驱动:

Class.forName(driverClass)

b.创建连接:

Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);

c.获取statement或者prepareStatement:

Statement st=conn.createStatement();

或者

PreparedStatement pst=conn.prepareStatement(sql);

d.执行sql:

ResultSet rs=st.executeQuery("select * from user");

或者

pst.execute();

2、Class.forName的作用?为什么要用?

Class.forName(xxx.xx.xx) 返回的是一个类,Java里面任何class都要装载在虚拟机上才能运行。这句话就是装载类用的

A a = (A)Class.forName("pacage.A").newInstance();

这和你A a = new A();是一样的效果。

最后用最简单的描述来区分new关键字和newInstance()方法的区别:

newInstance: 弱类型。低效率。只能调用无参构造。

new: 强类型。相对高效。能调用任何public构造。

=========xml=======

转载地址:https://blog.csdn.net/weixin_33093437/article/details/115039627 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java 面试题 2016_Java工程师面试题2016
下一篇:Java语言中的contains_java中的contains()方法

发表评论

最新留言

不错!
[***.144.177.141]2024年04月24日 07时47分06秒