- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 java中的静态分派与动态分派
java中的多态体现在重写和重载上,重载就属于静态分派,而重写属于动态分派。那我们先来弄清楚什么是静态类型,什么是动态类型。例如: public class Son extends Father{} Father a = new Son(); 对于以上代码:Father属于静态类型,Son属于动态类型。 所谓静态类型是指在程序编译期间就完全确定,而动态类型则是在程序运行期间才可以确定。
2016-04-04 12:45:04
402
原创 LinkedList源码解析
LinkedList源码解析LinkedList源码解析 简介 结构 内部类讲解 属性expectedModCount属性的讲解 主要方法讲解 ——简介 LinkedList底层是使用双线链表来实现的,将数组添加到这个集合或者是从集合删除其实都是对双向链表增加节点和删除及节点的操作。 LinkedList实现的类AbstractSequentialList中定义的modCount属性使得继承自它的集
2016-04-04 12:40:07
909
原创 在java虚拟机中的对象访问定位
在java虚拟机中的对象访问的定位主要有两种方式:使用句柄和直接指针两种方式。 1.使用句柄访问时java堆将会划分出一块内存来作为句柄池,reference存储的就是句柄的地址。如下图所示: 2.使用直接指针: reference中存储的是对象的地址。如图所示: 这两种方式各有利弊,使用句柄最大的好处是reference中存放的是稳定的句柄地址,在对
2016-02-07 14:08:59
524
原创 java中构造器的多态
java中构造器不像C++中的构造器没有动态绑定,java中的构造器遵循多态原则。 动态绑定是在运行时决定的,因为对象无法知道他是属于那一个类,这就使构造器出现了两难的问题:如果构造器中正在调用构造器所在的类需要动态绑定的方法,那会发生什么情况呢?答案是:构造器中调用的方法会用到那个方法被覆盖后的定义(可能招致灾难)。 下面看一个例子:
2016-02-03 20:52:37
651
原创 重新认识final关键字
学习java很长时间了,今天重新看了final关键字,发现其实自己掌握的还是不全面,下面就来看一下这个关键字都用在什么地方。 1.final修饰数据:对于基本类型的数据,final使得其数值不变,而对于对象类型的引用,final使得引用不变,这句话的 意思是对于引用的对象,final使得此对象指向地址不可改变,但是地址中的值可以改变。
2016-01-30 22:31:24
431
翻译 使用Tomcat时一次Http访问的过程
首先我们得看看Tomcat的基本元素,各个版本中相似但不同,在Tomcat中的server.xml中描述了以下的元素: @ service:顶层元素,代表整个Catalina Servlet容器,可以包含一个或者是多个Service; @ Service:连接器元素,它由一个或者多个Connector和一个Engine组成,负责处理所有的Connector所获得的客户请求。这些
2016-01-27 18:19:17
1683
原创 java垃圾清除算法
再讲java的垃圾回收机制之前,先要明白以下两个问题: a. 对象的循环引用 b. 怎样找到虚拟机中存活的对象 下面我们来看看这两个概念: a. 对象的循环引用:即A中的B的对象指向B的引用,而B中的A的对象指向A的引用。 代码如下: class A{ public B b; } class B{ public A a"; } class C{ public sta
2016-01-26 21:34:47
705
原创 垃圾回收与finalze()函数
初始化的重要性大家都有目共睹,与她同要重要的还有清理工作,就是java中的垃圾回收。java中的垃圾回收不同于C++中的析构函数,在C++中使用析构函数对象一定会被回收,但是在java中你必须明白以下问题: 1.对象可能不被垃圾回收 2.垃圾回收并不等于“析构” 3.垃圾回收只与内存有关 简单的介绍一下垃圾回收,java垃圾回会器只知道释放那些又ne
2016-01-26 12:46:02
874
原创 服务器接受客户端图片
写一个服务器接受客户端的图片然后保存在数据库的实例,不知道怎么弄,结果还是基础不够牢靠,对http请求抓包,看了看HTTP请求的信息,感觉一下子明白了很多。现在还望大家分享一下,希望能有帮助。 这是jsp的上传图片的表单,代码是考过来的,为了测试需要。 File Uploading Form File Upload: Select a file to upload:
2015-12-13 12:37:33
1513
翻译 post与get请求
在web中客户端发送的请求有两种:post&&get get: 请求方式: 1.直接在浏览器地址栏输入访问地址所发送的请求。 2.提交表单发送请求时,该表单对应的form元素没有设置method属性,或者设置method属性为GET。 特点 1.get方式 的请求会将请求参数的名和值转换为字符串,并且附加在原URL之后,因此可以在地址栏中看到请
2015-12-09 12:22:10
493
原创 java中的volatile关键字
使用volatile关键字时,会有很多误用,volatile修饰的变量只是保证对线程的可见性,被volatile修饰的变量被修改时,被强制写入内存,所以其他的线程保证得到的变量值是最新的。现在我们看看我们疑惑的代码: 如以下代码: public class Test { volatile static int x = 0; public static void main(String[]
2015-12-03 21:27:12
515
原创 java中String的传参和不可变问题探究
今天写程序时用到了String.replace(char oldChar, char newChar)方法。感觉很困惑,本来这个方法时新的字符代替旧的字符,可我发现使用了以后没有替换。这是为什么呢?经过思考如下: 先贴上代码: public class Test { public static void main(String[] args){ Test test = new
2015-11-27 17:18:40
1087
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅