Java基础
小管01
仰望星空 脚踏实地
展开
-
jvm垃圾收集策略与算法
垃圾收集策略与算法程序计数器、虚拟机栈、本地方法栈随线程而生,也随线程而灭;栈帧随着方法的开始而入栈,随着方法的结束而出栈。这几个区域的内存分配和回收都具有确定性,在这几个区域内不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收了。而对于Java 堆和方法区,我们只有在程序运行期间才能知道会创建哪些对象,这部分内存的分配和回收都是动态的,垃圾收集器所关注的正是这部分内存。判...原创 2018-06-24 13:02:02 · 145 阅读 · 0 评论 -
JVM加载class文件的原理机制
Java中的所有类,都需要由类加载器装载到JVM中才能运行。类加载器本身也是一个类,而它的工作就是把class文件从硬盘读取到内存中。在写程序的时候,我们几乎不需要关心类的加载,因为这些都是隐式装载的,除非我们有特殊的用法,像是反射,就需要显式的加载所需要的类。Java类的加载是动态的,它并不会一次性将所有类全部加载后再运行,而是保证程序运行的基础类(像是基类)完全加载到jvm中,至于其他类,则在...转载 2018-04-21 08:43:32 · 143 阅读 · 0 评论 -
类和类之间的依赖、关联、聚合、组合关系
一、继承关系 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。 二、实现关系 实现指的是一个class类实现interface接口(可以是多个)的...原创 2018-04-23 20:01:43 · 22703 阅读 · 1 评论 -
如何实现对象克隆?
有两种方式: 1). 实现Cloneable接口并重写Object类中的clone()方法; 2). 实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆,注意:基于序列化和反序列化实现的克隆不仅仅是深度克隆,更重要的是通过泛型限定,可以检查出要克隆的对象是否支持序列化,这项检查是编译器完成的,不是在运行时抛出异常,这种是方案明显优于使用Object...原创 2018-04-23 14:39:48 · 627 阅读 · 0 评论 -
说出Servlet的生命周期,并说出Servlet和CGI的区别
Servlet被服务器实例化后容器运行其init方法请求到达时运行其service方法service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新...翻译 2018-04-13 09:05:33 · 850 阅读 · 0 评论 -
JqueryEasyUI如何使用
JqueryEasyUI1. 准备2. 布局Layout3. 手风琴Accordion4. 菜单树Tree5. 数据表格DataGrid6. 内容页Tabs7. 表单 关于easyui不多说,对于我们这样没有美术功底的程序员来说,简直是大大的福利,下面我们就一步一步来创建. 1.准备 htt...翻译 2018-04-18 09:41:16 · 7808 阅读 · 1 评论 -
说出Servlet的生命周期,并说出Servlet和CGI的区别
Servlet被服务器实例化后容器运行其init方法请求到达时运行其service方法service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的...原创 2018-04-12 11:45:17 · 373 阅读 · 0 评论 -
垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收
对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。可以。程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。...原创 2018-04-12 11:43:35 · 1302 阅读 · 0 评论 -
在标准的JDK库中使用的一些设计模式有什么
Decorator(装饰者)设计模式常被用于各种Java IO类中Singleton模式常被用在运行环节中,Calendar以及各种其他类Factory(工厂)模式常被用于各种不可变类,比如Boolean。Boolean.valueOfObserver(观察者)模式常被用于Swing和许多事件监听器框架中。...原创 2018-04-17 09:06:36 · 2065 阅读 · 0 评论 -
解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法。
堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身. 3.一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 。 栈区:1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中2.每个栈中...原创 2018-04-10 11:05:35 · 2585 阅读 · 0 评论 -
Jsch远程连接服务器的各种操作完整代码
package com.cmcc.servlet;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileFilter;import java.io.FileInputStream;import java.io.FileOutputS...原创 2019-03-22 14:46:02 · 2415 阅读 · 0 评论