- 博客(13)
- 资源 (7)
- 收藏
- 关注
原创 Http和Socket连接区别
1、TCP连接 要想明白Socket连接,先要明白TCP连接。手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认
2017-05-27 11:02:58 8665 4
转载 详细说明JDK环境变量中dt.jar、tools.jar等变量值的作用(结合ClassLoader)
学习Java的人都要经历配置JDK环境变量这一步,安装好JDK后,我们一般会做如下配置:1.打开我的电脑--属性--高级--环境变量 2.新建环境变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.7.0变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%
2017-05-08 18:00:30 289
转载 【深入Java虚拟机】之八:Java垃圾收集机制
对象引用 Java中的垃圾回收一般是在Java堆中进行,因为堆中几乎存放了Java中所有的对象实例。谈到Java堆中的垃圾回收,自然要谈到引用。在JDK1.2之前,Java中的引用定义很很纯粹:如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。但在JDK1.2之后,Java对引用的概念进行了扩充,将其分为强引用(Stron
2017-05-08 17:59:32 217
转载 【深入Java虚拟机】之七:Javac编译与JIT编译
编译过程 不论是物理机还是虚拟机,大部分的程序代码从开始编译到最终转化成物理机的目标代码或虚拟机能执行的指令集之前,都会按照如下图所示的各个步骤进行: 其中绿色的模块可以选择性实现。很容易看出,上图中间的那条分支是解释执行的过程(即一条字节码一条字节码地解释执行,如JavaScript),而下面的那条分支就是传统编译原理中从源代码到目
2017-05-08 17:58:10 276
转载 【深入Java虚拟机】之六:Java语法糖
语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家Peter.J.Landin发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。Java中最常用的语法糖主要有泛型、变长参数、条件编译、自动拆装箱、内部类等。虚拟机并不支持这些语法,它们在编译阶段就被还原回了简单的基础语法结构,这个过程成为解语法糖。 泛
2017-05-08 17:57:23 195
转载 【深入Java虚拟机】之五:多态性实现机制——静态分派与动态分派
方法解析 Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址。这个特性给Java带来了更强大的动态扩展能力,使得可以在类运行期间才能确定某些目标方法的直接引用,称为动态连接,也有一部分方法的符号引用在类加载阶段或第一次使用时转化为直接引用,这种转化称为静态解析。这在前面的“Java内存
2017-05-08 17:56:27 255
转载 【深入Java虚拟机】之四:类加载机制
类加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示: 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为
2017-05-08 17:55:14 230
转载 【深入Java虚拟机】之三:类初始化
类初始化是类加载过程的最后一个阶段,到初始化阶段,才真正开始执行类中的Java程序代码。虚拟机规范严格规定了有且只有四种情况必须立即对类进行初始化:遇到new、getstatic、putstatic、invokestatic这四条字节码指令时,如果类还没有进行过初始化,则需要先触发其初始化。生成这四条指令最常见的Java代码场景是:使用new关键字实例化对象时、读取或设置一个类的静
2017-05-08 17:54:31 248
转载 【深入Java虚拟机】之二:Class类文件结构
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]平台无关性类文件结构 magic与version constant_pool access_flag this_classsuper_classinterfaces fields methods attributes转载请注明出处:ht
2017-05-08 17:52:54 318
转载 【深入Java虚拟机】之一:Java内存区域与内存溢出
目录(?)[-]内存区域 程序计数器Program Counter Register Java虚拟机栈Java Virtual Machine Stacks 本地方法栈Native Method Stacks Java堆Java Heap 方法区Method Area 直接内存Direct Memory内存溢出对象实例化分析转载
2017-05-08 17:51:23 237
原创 订单分库分表实践总结以及关键步骤
随着唯品会业务的快速发展,订单量的不断增长,原有的订单存储架构已经不能满足公司的发展了,特别是在大促高峰期,原订单库已经成为抢购瓶颈,已经严重制约公司的发展。唯品会旧订单库包含几十张订单相关表,旧订单库是典型的一主多从架构;主库容量已接近服务器物理空间上限,同时也已经达到MySQL的处理上限,很快将无法再处理新增订单。旧订单库面临的问题有:1、超大容量问题订
2017-05-02 09:59:49 404
原创 Mysql 千万级数据分页优化
在使用mysql数据库查询分页时,常用查询分页 limit 在小数据量查询ok熟读非常快 ,但是在大表数据查询时候性能非常有限这和limit本身设计相关好了下面介绍几种常用limit分页查询优化方案。 首先使用储存过程向数据库中插入1000w数据,脚本如下 Java代码 DROP PROCEDURE if exists in
2017-05-02 09:57:58 514 1
原创 SQL 大数据查询如何进行优化?
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描 select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查
2017-05-02 09:56:31 322
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人