`
Tristan_S
  • 浏览: 362428 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
package com.tristan; import java.util.Random; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; import com.google.common.util.concurrent.ThreadFactoryBuilder; ...

guava

    博客分类:
  • bf
List<List<Rule>> partitionList = Lists.partition(rules, partitions); 可以对list进行分区 ------------------------- package com.tristan; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util. ...

大数据的思维方式

    博客分类:
  • bf
 
思维方式不同 传统/互联网 功能实现,响应速度及时就ok了 大数据 需要考虑数据的拆分 -- 一份大文件进来需要拆分成很多个小文件 server/worker的关系 有些逻辑放在server端方便 比如并发逻辑的控制(顺序执行Map<String,BlockingQueue>, 只分配给一个worker来更新某张表的逻辑-->避免使用乐观锁了) 有些逻辑放在worker端方便 每次操作都需要访问的表,用hbase来查询会快很多。 --------------------------------

一个类的集合

    博客分类:
  • bf
Collections.singletonList

wait notify sleep synchronized

    博客分类:
  • bf
 
wait和sleep都可以用来停止一段时间 区别是wait是基于某个对象的,并且可以被notify wait和notify都需要被synchronized 保护起来,否则编译时不会报错,但是运行时会报错。 wait notify 可以用于分布式的的响应, 如果数量没到就一直轮询并wait几秒钟, 等都处理完了,就继续下去。 同时可以用notify来通知, 就不需要等待几秒钟的时间了。

Long 转成 int

    博客分类:
  • bf
Long 转成 int 1》 (int)(long)long1 2》 Integer.valueOf(String.valueOf(long1)) 3>  long1.intValue()

匿名内部类

    博客分类:
  • bf
作用就是使用外部环境中的变量时不需要作为参数传进来, 当然这些参数要设置成final, 不能改变其引用。 参见 PackageDispatcherImpl

mysql oracle 区别

    博客分类:
  • bf
mysql的date 只有日期没有时分秒 timestamp有 oralce的date 有时分秒  timestamp有毫秒 (oracle一般只会用date) 看上去mysql的date结构更加合理 --------------------- 自增sequence oracle需要手动建立 mysql 只要在字段后加上 auto_increment -----------------------

oracle 锁表

    博客分类:
  • jj
 
select sess.sid,     sess.serial#,     lo.oracle_username,     lo.os_user_name,     ao.object_name,     lo.locked_mode     from v$locked_object lo,     dba_objects ao,     v$session sess where ao.object_id = lo.object_id and lo.session_id = sess.sid;

并发问题

    博客分类:
  • jj
并发可以分为正常并发,恶意并发。 恶意并发可以用数据库的组合唯一索引来解决 正常并发可以用乐观锁加上递归来解决 synchronized只能解决单机问题, 集群环境则无能为力了。

nio

    博客分类:
  • jj
传统IO最大的问题是 一个线程监听一个端口,一天只会有几次请求进来,但是该 cpu 不得不为该线程不断做上下文切换尝试,大部分的切换以阻塞告终 http://www.iteye.com/topic/834447 -------------------- 支持所有文件格式 FileInputStream -- int(ascii码) -- FileOutputStream FileInputStream -- BufferedInputStream -- byte[]  -- BufferedOutputStream -- FileOutputStream FileInputStream - ...

solr

    博客分类:
  • jj
查询 建立索引 DB导数据到solr ------------------- Stored 存储 - 能显示 Indexed 索引 - 能搜索 Tokenized 分词  luence倒排索引 数据库是B树索引 所以solr快 solr就是luence的web版 首先 B树不是二叉树, 可以有很多叉, 取决于定义Key的数量, 或者是权的数量 B树是平衡树的种类之一, 比二叉树的优点是, 由于它始终调整为“平衡”, 那么搜索时,始终能保持LOGN的效率, 二叉树如果极度不平衡, 比如左边一个,右边一长串, 这样的情况下最坏搜索效率能下降到N。 其所包含的索引条目都是按照顺序排列的 ...

排序算法

    博客分类:
  • jj
排序算法 冒泡排序 (1/2)N^2,快速排序 NlogN ,归并排序 NlogN 冒泡排序简单,不需要递归 快速排序对大多数集合很快,最差的情况是冒泡排序的2倍 归并排序稳定, 分治 JDK Arrays.sort用的是归并排序+冒泡排序(小于7的时候)
根搜索算法 复制算法 标记整理算法 http://www.open-open.com/lib/view/open1380593930103.html 此处将引用《深入理解Java虚拟机——JVM高级特性与最佳实践》这本书的一些内容。 1、对象已死?     垃圾回收是对堆中对象的管理,首先就要确定什么是垃圾,即什么情况下堆中的对象可以被回收。     最常用的判定算法是引用计数算法,即每当有一个对象被其它对象所引用,则将对象的引用数+1,当对象的引用数为0时,则认为对象将不再被使用,可以回收。但引用计数算法有一个缺陷,即无法解决对象循环引用的问题。当对象相互引用时,将会给引用的双方的 ...

po dto vo

    博客分类:
  • jj
对于前台页面和后台接口拆分的项目,DB层用的是po 传输层dto 展示层vo 这种设计会有几个问题 1, 做一套CRUD页面的话,bean就要用3个,他们的属性基本一致,涉及到大量的属性拷贝。 2, 前台和接口都依赖于dto层,导致只要dto中数据修改,前台和接口所有的项目都要重新编译。 注: 这里可以做个偷懒 前台层直接用dto对象 改进 将dto剥离出来, dto直接定义在接口层(如果无必要直接将po包装下传出去也ok),前台vo和dto属性一致就ok,不用调用dto代码。 好处 1, 接口和前台不依赖于dto 2, 减少大量属性拷贝
Global site tag (gtag.js) - Google Analytics