03 2017 档案
摘要:ReentranLock是java.util.concurrent.locks中的一个类.需要显示的进行unclock 提供了tryLock方法,锁被其他线程持有返回false,否则当前线程会持有锁,并返回true 可以通过构造函数声明一个公平锁,效率较非公平锁低,按队列顺序获取锁 提供了Reent
阅读全文
摘要:一.网络通信模型:TCP/IP网络模型 二.网络IO的实现方式 1.BIO方式:一个线程只处理一个Socket 2.NIO方式:一个线程可以处理多个Socket 3.AIO方式:和NIO的区别是NIO在有通知时可以进行操作,AIO在有通知时操作已完成 三.负载均衡的方式 1.硬件负载均衡设备,透明代
阅读全文
摘要:Memcached:高性能的分布式内存缓存服务器 特征: u 协议简单: n 基于文本行的协议 u 基于libevent的事件处理: n 程序库,能实现连接数的增加,O(1)性能 u 内置内存存储方式 n 数据存储在内存,重启数据消失,在数据达到某个值时,基于LRU(Last Recently Us
阅读全文
摘要:MySQL数据库Query的优化 一.MySQL Query Optimizer基本工作原理. 二.Query语句优化基本思路和原则 a) 永远用小结果集驱动大的结果集,(Join语句) b) 尽可能在索引中完成排序 c) 只取自己需要的Columns d) 仅仅使用最有效的过滤条件 e) 尽可能避
阅读全文
摘要:一.Mysql数据库锁定机制 1.行级锁定(row-level) 锁定对象的粒度最小,发生锁定资源争用的概率小,提高高并发系统的整体性能 粒度小,每次获取和释放锁做的事情更多,消耗大.行级锁最容易发生死锁 2.表级锁定(table-level) 最大粒度的锁,逻辑简单,负面影响小,获取锁和释放锁速度
阅读全文
摘要:零.Mysql的储存引擎 1.MyISAM(默认):支持三种类型索引.B-Tree(最常用).R-Tree(很少用),Full-text(数据结构也是B-Tree) 2.Innodb(第三方) 支持事务,实现外键,锁定机制改进,多版本读取 3.NDB Cluster(分布式集群环境) 一.不适合在数
阅读全文
摘要:一.Mysql的两层架构: 1.SQL Layer():除了处理底层数据的所有功能,包括权限判断,sql解析,执行计划优化,query cache等 子模块:1.初始化模块:Mysql Server启动时整个系统的初始化 2.核心API:对底层操作的优化, 3.网络交互模块:(实现底层交互的api)
阅读全文
摘要:1.Spring对事务的控制,默认情况下只对继承自RuntimeException和Error的非检查型异常进行回滚 继承自Exception的检查型异常默认不回滚 2.非检查型异常可以不用捕获,检查型异常必须try语句块处理或者声明抛给上级,才可以 3.如果异常被try{}catch{}了,事务将
阅读全文
摘要:public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("输入头的个数:"); int head=sc.nextInt(); System.out.println("输入腿的个数:"); ...
阅读全文
摘要:public static void main(String[] args) { Node[]nodes=new Node[10]; for(int i=0;i<10;i++){ nodes[i]=new Node(); nodes[i].data=i+""; } for(int i=...
阅读全文
摘要:public static void main(String[] args) { System.out.println(match("abcdefg", "hfg")); } public static boolean match(String str, String target) { if (str == null || target ==...
阅读全文
摘要:传统密码学的算法方案: 1.换位密码算法方案 2.单表代替密码算法方案 3.同音代替密码算法方案 4.多表代替密码算法方案 5.多字母组第一密码算法方案 6.转轮密码机算法方案 现代密码学的分类: 1.序列密码算法方案:单钥密码算法,每次一位的对明文操作 2.分组密码算法方案:单钥密码算法,每次若干
阅读全文
摘要:public static String add(String a,String b){ StringBuilder sb=new StringBuilder(); int x=0; int y=0; int pre=0;//进位 int sum=0;//存储进位和另两个位的和 while(a.le
阅读全文
摘要:public static void main(String[] args) { System.out.println(add("1010","1")); } public static String add(String a,String b){ StringBuilder sb=new StringBuilde...
阅读全文
摘要:public class Demo2 { public static void main(String[] args) { // TODO Auto-generated method stub get("","123456"); } public static void get(String arr,String str){ ...
阅读全文
摘要:作用: 代码开发和测试时期,用于对某些关键数据的判断,如果这个关键数据不是你程序所预期的数据,程序就提出警告或退出。 语法1:assert expression; //expression代表一个布尔类型的表达式,如果为真,就继续正常运行,如果为假,程序退出 语法2:assert expressio
阅读全文
摘要:1.特点 a.只能出现在参数列表的最后 b.变量类型和变量名之间用...连接,可以有空格 c.调用可变参的方法时,编译器为该可变参隐含创建一个数组,在方法体中以数组的方式访问可变参 d.一个方法最多只能有一个可变参数 输出结果 13 6 结论:当调用方法的时候,如果能够和固定参数的方法匹配,也能够和
阅读全文
摘要:一.Spring的核心是控制反转(IOC)和面向切面(AOP),是一站式轻量级框架 IOC:即将Bean对象的创建,依赖关系,交给Spring容器来管理,用来解耦, 工厂模式 实现控制反转的一种方式:依赖注入 1.set方法注入 2.构造函数注入 AOP:即提供切面编程,j将重复性代码抽取,在不改变
阅读全文
摘要:1.简介: 简单工厂模式解决的问题是如何去实例化一个合适的对象 核心思想是,有一个专门的类来负责对象的实例化. 2.优点: 工厂类是整个模式的关键所在。它包含必要的判断逻辑,能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。 用户在使用时可以直接根据工厂类去创建所需的实例,而无需了解这些对象
阅读全文
摘要:一.String类使用字符数组保存字符串,数组有final修饰,不可变.线程安全 String a="hello";String b=new String("hello"); 第一种在栈内存定义了一个a对象的引用,指向堆内存的值"hello"的内存地址 第二种先在栈内存创建一个"hello"对象,n
阅读全文
摘要:一. final用于声明属性,方法,和类,表示属性不可变,方法不可覆盖,类不能继承 finally是异常处理中必须执行的代码 finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法 供垃圾收集时的其他资源的回收,所有的类都可以重写这个方法.例如做关闭流,关闭文件,
阅读全文
摘要:一.自旋锁和自适应自旋锁 自旋锁:不让线程挂起,(需要一个以上的处理器)让其短时间(可以设定,超时则挂起线程)执行一个忙循环, 自适应自旋锁:不固定等待时间,由虚拟机自行判断是否挂起(类似人工智能) 二.锁消除 编译器运行时,消除实现同步被检测到不可能存在共享数据竞争的锁消除,(其实是大部分消除ja
阅读全文
摘要:一.java中共享数据分为以下5类 1.不可变,即被final修饰如java.lang.String类的对象就是不可变对象,调用replace()等方法,都不会影响原来的值,只会返回一个新的字符串对象,Long等包装类型也是不可变 2.绝对线程安全.javaAPI中标注是线程安全的类,大多不是绝对安
阅读全文
摘要:一.作用: 1. 保证被volatitle修饰的变量对所有的线程是可见的,即当一个线程修改了这个变量 新值对其他线程来说是可以立即得知的,但运算非原子操作,不能保证并发下的安全性 (即i=i++当读出i的值是最新的,但+的过程中i的值被其他线程改变了) 普通变量的值在线程传递需要通过主内存来完成(即
阅读全文
摘要:1.内存分配: a.优先在新生代Eden区分配.Eden区没有足够的空间时,虚拟机发起一次Minor GC. (Major GC 是清理永久代。Minor GC 会清理年轻代的内存,Full GC 是清理整个堆空间—包括年轻代和永久代) b.大对象(需要大量连续内存空间的Java对象)直接进入老年代
阅读全文
摘要:1.java虚拟机运行时数据区 a.程序计数器: 是当前线程所执行的字节码的行号指示器.如果是执行虚拟机字节码,则记录的是指令的地址 如果执行的是Native方法,计数器为空(Undefined). 计数器是线程私有的 b.java虚拟机栈: 线程私有的 生命周期和线程相同,每个方法执行的时候会创建
阅读全文
摘要:1.同步和锁 java中每个对象都有一个内置锁,程序执行非静态的synchronized同步方法时,自动获得执行该方法的对象有关的锁. 一个对象只有一个锁,当一个线程获得锁,其他线程不能进入该对象上的synchronized方法或代码块.直到锁被释放. 线程可以有多个锁,例如,一个对象的同步方法中调
阅读全文
摘要:1.简介 1.CopyOnWrite是程序优化的策略,当共享的内容需要修改时,复制出去一份进行修改,然后将原来的引用指向修改完的 2.java并发包(java.util.concurrent)中CopyOnWriteArrayList和CopyOnWriteArraySet实现了这个并发容器 3.好
阅读全文

浙公网安备 33010602011771号