`
beck5859509
  • 浏览: 108896 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表
背景:实际开发中经常会出现当前线程必须等待子线程执行完毕以后的场景。写了一个简单的例子,使用了BlockingQueue的特性来实现。后面可以优化成按当前线程ID进行控制 使用方法: public static void main(String[] args) { TaskManager manager = TaskManager.getInstance(4); //新建一批线程任务执行 for(int i = 0; i < 100; i++){ manager.doTask(new Runnable(){ public void run ...
   最近在看数据库方面的内容,总结了一下程序中获取数据库连接的方式。比较流行的两种方式是采用JNDI与DBCP的方式。       其实两者的用法差不多,只是配置稍微有点不同。    JNDI方式配置        具体配置项无非是JNDI的名称、数据库IP地址、访问库名、用户名及密码、驱动等。另外还可以配置数据库的最大、最小、超时等待时间等,如下:     <min-pool-size>5</min-pool-size>     <max-pool-size>20</max-pool-size>      配置了JNDI以后,在应用中就 ...
   内部系统之间数据传输使用RMI方式比较方便,但外部系统之间由于系统兼容性原因,使用WebService是较流行的方式。这两天特意整理了一下WebService发布、调用的方式,把实例贴出来。       1.服务端配置:使用CXF + Spring方式。    配置web.xml,添加cxfservler,       <servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFSe ...
        在部署hadoop及运行过程中遇到的问题记录下来,毕免大家少走弯路。     1.提交map-reduce作业时,如果待提交的jar包中已指定含有main方法的主类(即查看MANIFEST.MF清单文件中是否包含main-class主类),则执行hadoop -jar时不用指定主类的路径,否则需要指定。     在不指定时执行如下语句。     则报下面的错误:            
问题:linux下配置完JAVA环境变量后,查看版本与设置的不一致。 解决步骤: 1.在/etc/profile上设置JDK的环境变量 export JAVA_HOME=/app/jdk/jdk1.6.0_29 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 2.查看本机是否有默认的JDK,导致环境变量中的被覆盖。 sudo update-alternatives --config java 如果没有之前添加的版本,则执行下面的语句,把jd ...
  背景:linux下机器A如何直接登录到机器B   操作步骤:   1.机器A上执行ssh-keygen -t rsa 生成默认的公私钥对(公钥:id_rsa.pub 私钥:id_rsa )   2.机器A上新生成一个文件touch authorized_keys.   3.把公钥内容拷贝到authorized_keys文件里面: cat id_rsa.pub >> authorized_keys.   4.拷贝authorized_keys文件到机器B家目录的.ssh下。比如 scp authorized_keys user01@10.0.132.3:/home/us ...
       好久没有动博客了,今天有时间把前段时间问题的解决思路总结一下。欢迎一起讨论。 应用端:         1.在多线程计算情况下汇总计算结果,必免不了要去重。比较常见的方法是重写hashCode和equals方法,其计算速度取决于hashCode方法的逻辑,需要根据业务逻辑,尽量使hashCode的值从不同的业务维度来累加。比如去重对象Object有四个维度,需把四个维度Object.A, Object.B, Object.C, Object.D四个维度都计算。这样的优势在于减少equals方法的调用。equals方法也有讲究,把耗时少,容易计算的逻辑放在前面,也可以 提升去重的效 ...
服务端设置: 服务端的启动脚本里面添加以下语句: JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9988" address可以任意设置,只要不冲突即可。 客户端设置: 在eclipse中选择Remote Java Application,填入以下选项。 Name:自定义,任意名称 Project:要调试的工程 Host:被调试的远端服务器ip Port: 端口号,和上述的保持一致 /proc/sys/net/core/netdev_max_ba ...
   通常在写单元测试时,最好以测试人员的身份进行编写,这样有利于早期的bug发现及代码重构。一般单元测试以业务场景为基础。每个场景单独进行测试,根据预测结果与实际返回值进行比对,得出程序功能是否正确。    ...

JSON的数据结构与用法

    博客分类:
  • web
 
JSON是一种取代XML的数据结构,和xml相比,它更小巧,由于它的小巧所以网络传输数据将减少更多流量从而加快速度。 JSON就是一串字符串 只不过元素会使用特定的符号标注。 {} 双括号表示对象 [] 中括号表示数组 "" 双引号内是属性或值 : 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象) 所以 {"name": "beck"} 可以理解为是一个包含name为beck的对象 而[{"name": "beck"},{"name": ...
1.盒子模型 布局前我们首先了解盒子模型,这是布局的基石。 网上很多内容没有讲解清楚盒子模型,引起了不少误解。 一个DIV在布局的概念中自内到外包含五层含义。 1)文本元素本身的内容。 2)padding所占空间 3)border所占空间 4)margin所占空间 5)position中top,left所占空间。 图示: 换种思路理解盒子模型 上面看起来有点抽象,我们可以想像一幢房子的结构情况。 1)床所占的空间是DIV里文本的内容。 2)床离墙的距离为padding的大小。 3)而墙的厚度即为border的大小。 4)每幢楼之间的距离即为margin的大小。其 ...
以sysdba登陆。 sqlplus / as sysdba select username,default_tablespace from dba_users; 创建用户: 其格式为:格式: create user 用户名 identified by 密码 default tablespace 表空间表; 如:SQL> create user testone identified by testone default tablespace test_tablespace; 授权 SQL> grant dba to testone; –表示把 dba权限授予给testone用户 ...
1.scala中map的几种常用遍历方式. postData.map(k => { println(k._1) println(k._2) //println(v) }) postData.foreach(k => { println(k._1) println(k._2) }) for((k,v) <- postData) yield{ println(k) println(v) } 2.Sealed cla ...
从一批数据中查找前10个最大值。正常的想法是构建一个10个数的数组,轮询查找的数据并与10个数中最小的比较,然后替换。 另一种思路采用大顶堆的方式。但是只用构建10次大顶堆即可。 多次运行程序后的结论: 100000000个数中普通查找速度大概是18秒,而堆方式查找只有13秒,随着数据量的增大,差距会更加明显。 普通排序: public class NormalSort { private static int array[] = new int[10000000000]; private static int base[] = new int[10]; ...
同事今天出了一道题,已知一个序列[1,2,3,4,5],求由五个数组成的随机序列。结果比如12345,54321,32145这样的序列。 一个组合排列A(5,5)的问题,以下是我JS版本的实现。 如有其它算法,欢迎讨论。 var initData = [1,2,3,4,5]; var result = new Array(); function build(array, value){ if(array.length == 1){ value += array[0]; result.push(value); return; } / ...
Global site tag (gtag.js) - Google Analytics