摘要:访问JavaBean属性的两种方式1)直接调用bean的setXXX或getXXX方法;2)通过内省技术访问(java.beans包提供了内省的API),内省技术访问也提供了两种方式: a)通过PropertyDescriptor类操作Bean的属性; b)通过Introspector类获得Be...
阅读全文
09 2014 档案
摘要:Apache组织开发了一套用于操作JavaBean的API,这套API考虑到了很多实际开发中的应用场景,因此在实际开发中很多程序员使用这套API操作JavaBean,以简化程序代码的编写。BeanUtils的作用:1)支持String到8种基本数据类型的转换;2)其他引用数据类型都需要注册转换器:C...
阅读全文
摘要:反射的作用1)在运行时判断任意一个对象所属的类;2)在运行时构造任意一个类的对象;3)在运行时判断任意一个类所具有的成员变量和方法;4)在运行时调用任意一个对象的方法。5)反射API可以获取程序在运行时刻的内部结构。6)使用反射的一个最大的弊端是性能比较差。相同的操作,用反射API所需的时间大概比直...
阅读全文
摘要:同步代码块实现生产者消费者模式class Person { private String name; private String sex; private Boolean isEmpty = Boolean.TRUE; // 表示存储区域是否为空 //生产 publi...
阅读全文
摘要:请编写一个多线程程序,实现两个线程,其中一个线程完成对某个对象int成员变量的增加操作,即每次加1,另一个线程完成对该对象成员变量的减操作,即每次减1,同时要保证该变量的值不会小于0,不会大于1,该变量的初始值为0。class Sample { private int number; p...
阅读全文
摘要:两个线程相互等着对方释放同步监听器;等着要对方的结果后才能继续执行就会发生死锁。男对女说:你先嫁给我,我再给你买房子;女对男说:你先给我买房子,我再嫁给你。多个线程同时锁住同一个监听对象。在开发中要避免死锁。死锁的例子:public class DeadLock { public static...
阅读全文
摘要:三范式介绍表的范式:只有符合的第一范式,才能满足第二范式,进一步才能满足第三范式。1、 第一范式:表的列具有原子性,不可再分解。只要是关系型数据库都自动满足第一范式。数据库的分类:关系型数据库:MySQL/ORACLE/Sql Server/DB2等非关系型数据库:特点是面向对象或者集合nosql数...
阅读全文
摘要:对于一个以数据库为中心的应用,数据库的优化直接影响到程序的性能,因此数据库性能至关重要。一般来说,要保证数据库的效率,要做好以下几个方面的工作:1、 数据库表设计: 表的设计合理化(符合3NF);2、 添加适当索引(index): 普通索引: 主键索引: primary 效率最高,但是只...
阅读全文
摘要:通过show status命令了解各种SQL的执行频率MySQL客户端连接成功后,通过使用show [session|global] status 命令可以提供服务器状态信息;其中的session来表示当前的连接的统计结果,global来表示自数据库启动至今的统计结果,默认是session级别的。s...
阅读全文
摘要:一、线程的实现方式方式一:继承Thread类一个类只要继承了Thread类,并重写run()方法,则就可以实现多线程的操作。public class ThreadDemo01 { public static void main(String[] args) { Thread1 t...
阅读全文
摘要:一、银行取款引出的问题模拟银行取钱的例子:public class ThreadDemo06 { public static void main(String[] args) { Bank bank = new Bank(); Runnable runnable =...
阅读全文
摘要:一、键过期功能的相关命令二、设置生存时间Redis 提供了两个命令来设置键的生存时间(TTL,time to live),它们分别是:如果给定的键不存在,那么 EXPIRE 和 PEXPIRE 将返回 0 ,表示设置失败;如果命令返回 1 ,那么表示设置成功。当一个键被设置了生存时间之后,它的生存时...
阅读全文
摘要:流水线功能的目的:通过减少客户端与服务器之间的通信次数来提高程序的执行效率。一、通信在一般情况下, 用户每执行一个 Redis 命令,客户端与服务器都需要进行一次通信:客户端会将命令请求发送给服务器,而服务器则会将执行命令所得的结果返回给客户端。当程序执行一些复杂的操作时, 客户端可能需要执行多个命...
阅读全文
摘要:一、事务Redis 的事务功能允许用户将多个命令包裹起来,然后一次性地、按顺序地执行被包裹的所有命令。在事务执行的过程中,服务器不会中断事务而改去执行其他命令请求,只有在事务包裹的所有命令都被执行完毕之后,服务器才会去处理其他命令请求。事务示例:现在, 让我们假设 SETEX 命令并不存在于 Red...
阅读全文
摘要:一、RDB持久化的缺点创建RDB文件需要将服务器所有的数据库的数据都保存起来,这是一个非常耗费资源和时间的操作,所以服务器需要隔一段时间才能创建一个新的RDB文件,就也是说创建RDB文件的操作不能执行的过于频繁,否则就会严重地影响服务器的性能。在 save 配置选项的默认设置下,即使有超过 1000...
阅读全文
摘要:因为Redis服务器将数据存储在内存里面,而一旦服务器被关闭或者运行服务器的主机本身被关闭的话,存储在内存里面的数据就会消失不见;如果我们仅仅是将redis用作缓存的话,那么这种数据丢失带来的问题并不是非常大,我们只需要重启机器,然后再次将数据放到缓存里面就可以了;但如果我们将redis用作数据库的...
阅读全文
摘要:Redis 服务器提供了一些配置选项(configuration option),通过修改这些选项的值,可以改变选项对应功能的行为。比如:介绍 SELECT 命令时曾经说过,Redis 服务器默认会创建 0 号至 15 号共十六个数据库以供用户使用;但 Redis 服务器的数据库数量并不是一成不变的...
阅读全文
摘要:Spark history Server产生背景以standalone运行模式为例,在运行Spark Application的时候,Spark会提供一个WEBUI列出应用程序的运行时信息;但该WEBUI随着Application的完成(成功/失败)而关闭,也就是说,Spark Application...
阅读全文
摘要:HashSet常用方法介绍public boolean add(E e)public boolean isEmpty()void clear()public Iterator iterator()int size()详细方法详见JDK帮助文档Object的equals方法和hashCode方法1、 ...
阅读全文
摘要:使用java开发一个helloworld级别UDF,打包成udf.jar,存放在/home/hadoop/lib下,代码如下:package com.luogankun.udf;import org.apache.hadoop.hive.ql.exec.UDF;public class HelloU...
阅读全文
摘要:启动ThriftJDBCServer:cd $SPARK_HOME/sbinstart-thriftserver.sh &使用jdbc访问ThriftJDBCServer代码段:package com.luogankun.spark.sqlimport java.sql.DriverManageri...
阅读全文
摘要:Thrift JDBC Server描述Thrift JDBC Server使用的是HIVE0.12的HiveServer2实现。能够使用Spark或者hive0.12版本的beeline脚本与JDBC Server进行交互使用。Thrift JDBC Server默认监听端口是10000。使用Th...
阅读全文
摘要:Spark SQL CLI描述Spark SQL CLI的引入使得在SparkSQL中通过hive metastore就可以直接对hive进行查询更加方便;当前版本中还不能使用Spark SQL CLI与ThriftServer进行交互。使用Spark SQL CLI前需要注意:1、将hive-si...
阅读全文
摘要:集合使用注意事项:1、集合当中只能放置对象的引用,无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合当中去(JDK5之后会进行自动的装箱和拆箱操作,表面上看集合中是可以直接放置原生数据类型进去,但实质上是进过自动装箱成对象操作的);2、集合当中放置的都是Object类型,因此取出来...
阅读全文
摘要:public class StringDemo01 { public static void main(String[] args) { String s1 = new String("abc"); // a String s2 = "abc"; // b ...
阅读全文
摘要:存在的问题:当把hql写到shell中,不方便阅读;但把hql写到文件中,又传递不了参数;怎么办呢?自定义hivefile执行方式形如:第一个参数为要执行的hql文件,后续的参数为要替换的key-value对。hivefile d:/hivefile_test.hql -date "2013-01-...
阅读全文
摘要:spark自带的example中就有streaming结合kafka使用的案例:$SPARK_HOME/examples/src/main/scala/org/apache/spark/examples/streaming/KafkaWordCount.scala使用方法参见代码描述:Usage: ...
阅读全文
摘要:使用版本:kafka_2.10-0.8.1.1安装:tar -zxvf kafka_2.10-0.8.1.1.tgz -C ~/app/添加环境变量:.bash_profileexport KAFKA_HOME=/home/spark/app/kafka_2.10-0.8.1.1export PAT...
阅读全文
摘要:Hive默认情况下查询结果里面是只显示值:hive> select * from click_log;OK11 ad_101 2014-05-01 06:01:12.334+0122 ad_102 2014-05-01 07:28:12.342+0133 ad_10...
阅读全文
摘要:启动HiveServer2:cd $HIVE_HOME/bin以后台方式默认端口启动HiveServer2(默认端口是10000):hiveserver2 &以后台方式指定端口的方式启动:hiveserver2 --hiveconf hive.server2.thrift.port=14000 &使...
阅读全文
摘要:方式缺点优点基于已有对象扩充属性和方法不可重用,没有约束无工厂方法检测不出是什么的实例简单封装,可以传参构造方法每创建一个对象就有开辟存放方法的空间能通过instanceof检测出实例类型,可以传参原型方式不能传参,属性共享方法区共享构造方法+原型属性和方法分开放置能传参,属性放构造方法中,方法放原...
阅读全文
摘要:为了让定义的方式更加符合java的需求,就把定义方法的原型代码放置在Person这个构造函数中。function Person(name,age,friends){ //属性在构造函数中定义 this.name = name; this.age = age; this.fri...
阅读全文
摘要:为了解决原型所带来的问题,此处需要通过组合构造方法和原型来实现对象的创建,将属性在构造方法中定义,将方法在原型中定义。这种有效集合了两者的优点,是目前最为常用的一种方式。function Person(name,age,friends){ //属性在构造函数中定义 this.name =...
阅读全文
摘要:原型内存模型介绍原型是javascript中非常特殊的一个对象,当一个函数创建之后,会随之就产生一个原型对象。当通过这个函数的构造函数创建一个具体的对象之后,在这个具体的对象中就会有一个属性指向原型。第一种状态function Person(){ }function Person(){},Pe...
阅读全文
摘要:通过构造函数的方式创建和基于工厂的创建类似,最大的区别就是函数的名称就是类的名称,按照java的约定,第一个字母大写。使用构造函数创建对象时,在函数内部是通过this关键字来完成属性的定义。function Person(name, age){ this.name = name; thi...
阅读全文
摘要:通过工厂的方式来创建Person对象,在createPerson中创建一个对象,然后为这个对象设置相应的属性和方法,之后返回这个对象。function createPerson(name, age){ var obj = new Object(); obj.name = name; ...
阅读全文
摘要:json: javascript simple object notation。json就是js的对象,但是它省去了xml中的标签,而是通过{}来完成对象的说明。定义对象var person = { name : "luogankun", //通过属性名:属性值来表示,不同的属性通过,来间隔 ...
阅读全文
摘要:var person = new Object();person.name = "luogk";person.age = 33;person.say = function(){ alert(this.name + " , " + this.age);//this表示的是调用的对象即person...
阅读全文