- 博客(16)
- 收藏
- 关注
原创 语言处理器
title: 2019-1-13 tags: 编译原理 grammar_cjkRuby: true 编译器 : Created with Raphaël 2.2.0源程序编译器目标程序 可以发现源程序的错误 解释器 : Created with Raphaël 2.2.0输入&执行源程序解释器输出 对比: 把用户输入映射为输出过程中,编译过的机器语言目标程序效率快于解释器,但诊断错误效果...
2019-01-13 10:46:10 542
原创 Future和Callable,CompletionService实现并行化
Callable和Future实现并行化 Future表示一个任务的生命周期,并可以判断是否完成和取消。 接口 方法如下: boolean cancel(boolean);取消任务 V get();获取结果,阻塞等待 V get(long, TimeUnit);最大超时等待(时间,时间单位) boolean isCancelled(); boolean isDone(); 如下面代码示例:当加载...
2018-11-07 21:09:54 212
原创 线程池(Executor框架)
任务是一组逻辑工作单元,而线程则是使任务异步执行的机制。 当把所有任务都放在单个线程中串行执行时,会产生糟糕的响应性; “为每个任务分配一个线程”资源管理的复杂性会升高,不足如下: 线程生命周期的开销非常高。(创建和销毁) 资源消耗 活跃资源消耗资源,尤其内存。当可运行线程大于可用处理器时,有些线程将闲置,从而闲置线程占用许多内存,给垃圾回收器带来压力,而且在竞争CPU会有其他性能消耗。 稳定性...
2018-11-07 08:54:10 849 1
原创 构建 高效可伸缩的结果缓存
通过HashMap实现缓存 Computable接口 public interface Computable<A, V> { V compute(A arg) throws InterruptedException; } **ExpensiveFunction **(表示结果的计算过程) public class ExpensiveFunction implements Compu...
2018-11-05 08:45:46 171
原创 同步工具类(闭锁,信号量,FutureTask,信号量,栅栏)
同步工具类可以使任何一个对象,只要它根据自身的状态来协调线程的控制流。阻塞队列可以作为同步工具类,其他类型的同步工具类还包括信号量,栅栏以及闭锁。 所有的同步工具类都包含一些特定的结构化属性:封装了一些状态,这些状态将决定执行同步工具类的线程是继续执行还是等待,还提供一些方法对状态进行操作,自己用于高效的等待同步工具类进入预期状态的方法。 闭锁 可以延迟线程的进度直到其到达终止状态。 闭锁作用相当...
2018-11-04 18:12:14 360
原创 ClassLoader类结构
作用 将Class加载到JVM 审查类由谁加载 字节码解析成JVM统一要求的对象格式 类结构分析 常用方法: findClass(String) Class<?>; loadClass(String) Class<?>; resolveClass(Class<?>) void; defineClass(b
2018-10-15 09:38:03 206
原创 linux 查看日志常用命令
一.cat 一次显示整个文件 cat filename 从磁盘创建一个文件 cat > filenaem (只能创建新文件) 合并文件 cat file1 file2 > file 参数 -n 显示行号 -b 显示行号,空白行不编号 -s 多空白行合并为一行 实例 cat -n file1 > file2 把file1添加行号后输入到file2 c...
2018-09-13 14:54:50 588
原创 对象的共享——可见性
可见性 单线程,写入读取,很自然。 多线程,当一个线程写入数据,一个读取时候,会产生一系列问题,无法确保读操作的线程看到其他线程写入的数据,因此,需要使用同步。 public classNovisibility{ private static boolean ready; private static int number; private static class...
2018-08-26 10:28:39 448
原创 Redis总结
1.什么是Redis?Redis是一个基于内存的 =高性能键值对数据库,通过定期把数据flush到硬盘实现持久化(异步),因为是内存操作,所以性能很高,另一个特点是支持保存多种数据类型(String,Hash,Set,Sorted Set,List).内存中之所以快是因为解决了IO读写的耗时问题。 2.Redis的主从与读写分离Redis支持主从的模式,原则:主数据库会将数据同步到从库,而从库不会同
2017-10-24 19:36:25 273
原创 Longgest SubString
longgest subString首先public int lengthOfLongestSubstring(String s) { if(s.length()==0) return 0; if(s.length()==1) return 1; Set<Character
2017-04-25 18:40:50 407
原创 Add Two Numbers
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a lin
2017-04-25 14:46:23 175
原创 Two Sum
Two Sum Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not
2017-04-25 10:08:41 226
原创 mysql约束
约束 约束保证数据的完整性和一致性。 约束分为表级约束和列级约束。 约束类型包括: NOT NULL(非空约束) PRIMARY KEY(主键约束) UNIQUE KEY(唯一约束) FOREIGN KEY(外键约束) 外键约束 父表和子表必须使用相同的存储引擎,而且禁止使用临时表。 数据表的存储引擎只能为InnoDB. 外键列和参照列必须有相似的数据类型。而且数字的长度和是否有符号
2017-03-30 22:12:57 174
原创 mysql表操作
查看数据库表结构SHOW COLUMNS FROM tabl_name插入记录INSERT [INTO] tbl_name [(col_name,...)] values (val1,...)
2017-03-30 21:53:43 191
原创 mysql初级
创建数据库: CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name 显示警告:SHOW WARING; 修改编码: ALTER DATABASE db_name CHARACTER SET utf-8; 删除数据库: DROP {DATABASE | SC
2017-03-30 21:35:02 190
原创 java笔记short相加自动转换
精度小于int的数值运算的时候都回被自动转换为int后进行计算 所以,下面的代码会报编译错误 short s1 = 5; short s2 = 3; s1= (s1+s2); 必须改成: short s1 = 1; short s2 = 1; s1= (short)(s1+s2); 但是,s1+=4;是正确的
2016-09-27 16:50:40 1902
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人