摘要:
1 进程和线程 进程是OS分配资源的最进本的单位,线程是执行调度的最基本单位。分配资源最重要的是:独立的内存空间,线程调度执行(线程共享进程的内存空间,没有自己的独立空间)。 JVM线程与操作系统的线程是一一对应的,在JVM中启动一个线程,会交给操作系统启动一个线程。 纤程:用户太的线程,线程中 阅读全文
摘要:
存储过程和存储函数 指存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数。 存储过程和存储函数的区别? 存储函数:可以通过return 语句返回函数值。 存储过程:不能 除此之外我们可以认为他们是完全一样的。 存储过程 1、创建存储过程 用create procedure命令简历存储过程。 阅读全文
摘要:
事务基本概念 一组要么同时执行成功,要么同时执行失败的SQL语句。是数据库操作的一个执行单元。 事务开始于: 连接到数据库上,并执行一条DML语句insert、update或delete 前一个事务结束后,又输入了另一条DML语句 事务结束于 执行commit或rollback语句。 执行一条DDL 阅读全文
摘要:
为什么研究类加载全过程? 有助于连接JVM运行过程 更深入了解java动态性(解热部署,动态加载),提高程序的灵活性 类加载机制 JVM把class文件加载到内存,并对数据进行校验、解析和初始化,最终形成JVM可以直接使用的java类型的全过程。 加载 将class文件字节码内容加载到内存中,并将这 阅读全文
摘要:
Java动态性的两种常见实现方式 字节码操作 反射 运行时操作字节码可以让我们实现如下功能: 动态生成新的类 动态改变某个类的结构(添加/删除/修改 新的属性/方法) 优势: 比反射开销小,性能高 JAVAasist性能高于反射,低于ASM 常见的字节码操作类库 BCEL 这是Apache Soft 阅读全文
摘要:
1. 动态语言 程序运行时,可以改变结构或变量类型。典型的语言: Python、ruby、javascript等 如下javascript代码 function test(){ var s = "var a=3;var b=5;alert(a+b);"; eval(s); } C,C++,java不 阅读全文
摘要:
开源工具包: Guava : Google Collection Apache:Commons Collecton 1.1 Google Collections Guava:google的工程师利用传说中的“20%时间”开发的集合库,它是对jdk提供的扩展,提供了很多使用的类来简化代码 jar包:h 阅读全文
摘要:
1、内置引用数据类型比较(常用) 1.1 Comparable 1、整数、小数Integer Float Double 直接比较基本数据类型的大小 2、字符:比较的Unicode码只差 3、字符串: 1)如果其中一个是另外一个其实开始的子传,返回长度子差 2)否则返回第一个不相等的Unicode码之 阅读全文
摘要:
HashMap:键值对(key-value) 通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value. 默认是1:1关系(一对一) 存在则覆盖,当key已经存在,则利用新的value覆盖原有的value 例1:给定一个字符串,求出字符串中每一个单词在字符串中出现的次数 旨意: 阅读全文
摘要:
一、HashMap概述 HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 值得注意 阅读全文
摘要:
1.概述 ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于 阅读全文
摘要:
Java中常用锁 1 各种锁概念及使用 1.1 synchronized 非公平锁 JDK早期 重量级锁,向OS申请系统锁 锁升级改进概念:syschronized锁开始只记录线程ID(偏向锁,偏向锁只记录线程的ID,实际不是真正的加锁 只记录状态),如果线程争抢,升级为自旋锁(自旋锁占用C 阅读全文