- 浏览: 33308 次
- 性别:
- 来自: 北京
最新评论
文章列表
转自:http://blog.csdn.net/u010723709/article/details/47281349
在Java程序中,创建一个对象通常需要一个new关键字就够了,但是在虚拟机中,这个过程却有点复杂,这里面包括了类加载、内存分配、初始化零值等等一系列的步骤。
下面来看看JVM如何创建一个对象(这里面的对象仅仅限于不同的Java对象,不包括数组和Class对象)
1 对象的创建
1.1 类初始化
当JVM遇到一条new的指令(与new关键字不是一个概念)时,首先去检查这个指令是否在常量池中定位到一个类的符号引用,并且检查这个符号引 ...
文章来源:http://www.cnblogs.com/smyhvae/p/4810168.html
【正文】
声明:本文只是做一个总结,有关jvm的详细知识可以参考本人之前的系列文章,尤其是那篇:Java虚拟机详解04----GC算法和种类。那篇文章和本文是面试时的重点。
...
来源:http://blog.csdn.net/loveslmy/article/details/46820929
JVM在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途、创建和销毁的时间。本文以Sun公司HotSpot虚拟机为例进行说明,JRockit和IBM J9会有所不同。HotSpot运行时数据区分为堆和栈两种类型,堆空间为线程共享,栈空间为线程私有。堆空间又分为方法区和堆,栈细分为虚拟机栈、本地方法栈和程序计数器,但HotSpot栈的实现将本地方法栈中的内容放入虚拟机栈空间进行存储,所以HotSpot中不存在本地方法栈,下面展开 ...
转自 http://blog.csdn.net/shuaihj/article/details/14223015
这次我们采取技术演进的方式来谈谈数据库连接池的技术出现过程及其原理,以及当下最流行的开源数据库连接池jar包。
一.早期我们怎么进行数据库操作
1.原理:一般来说,Java应用程序访问数据库的过程是:
①装载数据库驱动程序;
②通过jdbc建立数据库连接;
③访问数据库,执行sql语句;
④断开数据库连接。
情景介绍:
如下图数据,要将四条数据合成一条数据,根据file_type的不同,file_url对应不同的字段
file_utl对应字段规则:
file_type:
4:file4_status
5:file5_status
6:file6_status
数据库表数据:
处理之后的数据:
分析:
行转列,只有一条数据,使用GROUP BY。为了拼接字符串,使用聚合函数GROUP_CONCAT,才能取出所有的数据,否则只取GROUP BY的第一条数据
句式:CASE WHEN THEN END (AS ...
应用层 (Application):
网络服务与最终用户的一个接口。
协议有:HTTP FTP TFTP SMTP SNMP DNS
表示层(Presentation Layer):
数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)
格式有,JPEG、ASCll、DECOIC、加密格式等
会话层(Session Layer):
建立、管理、终止会话。(在五层模型里面已经合并到了应用层)
对应主机进程,指本地主机与远程主机正在进行的会话
传输层 (Transport):
定义传输数据的协议端口号,以及流控和差错效验。
协议有:TCP UDP,数据包一旦离开网卡即进入网络传 ...
TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。
TCP/IP协议集包括应用层,传输层,网络层,网络访问层。
其中应用层包括:
超文本传输协议(HTTP):万维网的基本协议.
文件传输(TFTP简单文件传输协议):
远程登录(Telnet),提供远程访问其它主机功能,它允许用户登录
internet主机,并在这台主机上执行命令.
网络管理(SNMP简单网络管理协议),该协议提供了监控网络设备的方法,以及配置管理,统计信息收集,性能管理及安全管理等. ...
HashMap是基于哈希表的Map接口的非同步实现。
数组
数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;
链表
链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。
哈希表
那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的,这就是我们要提起的哈希表。哈希表((Hash table)既满足了数据的查找方便,同时不占用太多的内容空间,使用也十分方便。
一些常见的面试题:
1、HashMap ...
转载自 http://www.cnblogs.com/BoyXiao/archive/2010/05/07/1729376.html?login=1
单例模式(Singleton)
首先来明确一个问题,那就是在某些情况下,有些对象,我们只需要一个就可以了,
比如,一台计算机上可以连好几个打印机,但是这个计算机上的打印程序只能有一个,
这里就可以通过单例模式来避免两个打印作业同时输出到打印机中,
即在整个的打印过程中我只有一个打印程序的实例。
简单说来,单例模式(也叫单件模式)的作用就是保证在整个应用程序的生命周期中,
任何一个时刻,单例类的实例都只存在一个(当然也可以不存在)。 ...
2014/3/28
相当于做一个web前端,然后调用galago返回的结果。
每次galago运行完之后会在galagosearch-1.01/galagosearch-core/target/appassembler/bin目录下生成一个galago文件(.bat是windows下),相当于一个可执行文件。调用该文件即可。
具体流程:
根据输入框的title,narrative生成xml格式的topics,然后调用galago,运行,输出结果到BSOrg中,然后解析得到id号,根据id找到xml(直接根据id号写出路径),取出里面的值,显示。
1、调用myeclipse环境下的galag ...
1、读取目录下指定后缀的文件
public List<String> readFile(String dirPath) {
// 建立当前目录中文件的File对象
File file = new File(dirPath);
// 取得代表目录中所有文件的File对象数组
File[] list = file.listFiles();
// 遍历file数组
for (int i = 0; i < list.length; i++) {
if(list[i].isDirector ...
转载自:http://cantellow.iteye.com/blog/838473
第一种(懒汉,线程不安全):
public class Singleton {
private static Singleton instance;
private Singleton (){}
public static Singleton getInstance() {
if (instance == null) {
instance = new ...
用两个栈(Stack)实现队列(Queue)
1、入队时,将元素压入s1;
2、出队时,判断s2是否为空,如不为空,则直接弹出顶元素;如为空,则将s1的元素逐个“倒入”s2,把最后一个元素弹出并出队。
避免了反复“倒”栈,仅在需要时才“倒”一次。
public class Solution {
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
public void ...
java 路径分隔符
- 博客分类:
- Java
路径分隔符:
Window:反斜杠“\”
Linux:正斜杠“/”
1、考虑到程序的可移植性,在Linux和Window下最好都要用“/”,都是可以的。
2、用File.operator
File f = new File("d://test//1.txt"); √
File f = new File("d:/test/1.txt");√
File f = new File("d:\\test\\1.txt");√
File f = new File("d:\test\1.txt"); Χ
匹配文件
W ...