平时积累的一些java基础

来源:互联网 发布:微信视频强制分享源码 编辑:程序博客网 时间:2024/05/21 06:30

1.Thread类的run方法:If this thread was constructed using a separate Runnable run object, then that Runnable object's run method is called; otherwise, this method does nothing and returns.

2.一个类中的方法可以改变其私有成员的值

3.若一个类中有成员变量为实例化对象,则该类实例化两个对象其成员变量为同一个对象

4.当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。也就是说,当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。

5.Notify():唤醒访问该对象的任意一个wait的线程

6.一个类可以实现多个接口,若一个方法的参数是一个接口而不是一个类,那么程序受到单继承体系的限制就放松了许多。任何实现了该接口的类都能够满足该方法

7.连接的主要任务就是做一些加载后的验证工作以及一些初始化前的准备工作,可以细分为三个步骤:验证、准备和解析。

8.类的初始化过程是这样的:按照顺序自上而下运行类中的变量赋值语句和静态语句。在类的初始化阶段,只会初始化与类相关的静态赋值语句和静态语句,也就是有static关键字修饰的信息,而没有static修饰的赋值语句和执行语句在实例化对象的时候才会运行。定义类数组,不会引起类的初始化。引用类的常量,不会引起类的初始化。引用父类的静态字段,只会引起父类的初始化,而不会引起子类的初始化

9.该类所有的类对应的java.lang.Class对象没有在任何地方被引用,无法在任何地方通过反射访问该类的方法。实例都已经被回收,也就是java堆中不存在该类的任何实例。加载该类的ClassLoader已经被回收。这三个条件全部满足时,类会被卸载,生命周期结束。

10.MethodinvokeObject obj,Object...args)第一个参数为类的实例,第二个参数为相应函数中的参数

11.链接就是解决多个模块的引用和库调用,然后进行重定位以便生成可执行文件。链接过程最重要的就是符号解析,就是将模块中的导入符号找到其定义的地方,然后将符号替换为指针。

12.Class下的newInstance()的使用有局限,因为它生成对象只能调用无参的构造函数

13.java里面任何class都要装载在虚拟机上才能运行,而静态代码是和class绑定的,class装载成功就表示执行了你的静态代码了,而且以后不会再走这段静态代码了。

14.只有selecct语句才会返回一个结果集

15.对于服务器编程中最重要的一步等待并接受客户的连接,accept函数就是完成这一步的。它从内核中取出已经建立的客户连接,然后把这个已经建立的连接返回给用户程序,此时用户程序就可以与自己的客户进行点到点的通信了。

16.UDP:将数据装在字节数组中,用Datagrampacket打包,再用DatagramSocket.send发送

17.在同一个窗口访问不同文件使用的是同一个session

18.向集合类中添加对象本质是存储该对象的地址,并不复制该对象。即集合类对象中存放的是对象的引用

19.String类型使用replace替换返回一个新字符串,原字符串不变

20.socket只是对TCP/IP协议栈操作的抽象,而不是简单的映射关系。如果一个程序创建了一个socket,并让其监听80端口,其实是向TCP/IP协议栈声明了其对80端口的占有。以后,所有目标是80端口的TCP数据包都会转发给该程序(这里的程序,因为使用的是Socket编程接口,所以首先由Socket层来处理)。所谓accept函数,其实抽象的是TCP的连接建立过程。accept函数返回的新socket其实指代的是本次创建的连接,而一个连接是包括两部分信息的,一个是源IP和源端口,另一个是宿IP和宿端口。所以,accept可以产生多个不同的socket,而这些socket里包含的宿IP和宿端口是不变的,变化的只是源IP和源端口。这样的话,这些socket宿端口就可以都是80,而Socket层还是能根据源/宿对来准确地分辨出IP包和socket的归属关系,从而完成对TCP/IP协议的操作封装!

21.getAttribute是取得jsp中 用setAttribute設定的attributeparameter得到的是string;attribute得到的是object。request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据;request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。即request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。getattribute一般在前台用于获取后台转发值。getParameter一般在后台用于获取前台请求值

原创粉丝点击