自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 单例模式

1.饿汉模式 缺点:当加载该类时,静态方法也会被加载并生成一个对象占用内容,而这个对象不一定会使用,造成资源浪费;另外new SinletionTest()也无法获取构造函数异常;public class SingletonTest { private SingletonTest(){} private static final SingletonTest instance = n

2017-06-12 21:18:33 206 1

原创 nodejs利用gridfs存文档到mongo中

最近开发一个web是用nodejs开发的,有个上传文档的功能 mongo链接端 首先npm install下载需要的模块 mongo中fs.files中有字段filesname,metadata,利用metadata作为文档的分类var mongoose = require('mongoose');var conn = mongoose.createConnection('mongodb:/

2017-02-16 11:38:18 4153

原创 &&与&

&&和&都是逻辑与的运算符 不同: 1.&&具有短路功能,如果第一个表达式为false,则不再计算第二个表达式 2.&还可以作位运算符,当&操作符两边不是boolean类型时,&表示按位与操作

2016-12-08 17:07:24 259

原创 shell 转义

\” 表示引号 echo “test” # test echo “\”test\”,001” #”test”,001\表示反斜杠 echo \ #\\n 表示新行 \r 表示回车 \t 表示水平的制表符 \v 表示垂直的制表符 \b 表示后退符

2015-04-21 15:46:01 714

原创 sql sum

hive -e "create table default.tbl_play_info_29 asselect p1,p2,deviceid,sum(case when pt <= 180 and pt >= 0 then 1 else 0 end) cor_num,sum(case when pt>180 or pt<0 then 1 else 0 end) err_num from data

2015-04-21 15:28:03 307

原创 集群运行脚本

首先写一个脚本select_app02.sh如下:#!bin/bash hive -e "drop table default.tbl_play_pt_small_0;create table default.tbl_play_pt_small_0 as select a.p1,a.p2,a.deviceid from data_raw.tbl_play_hour a where a.dt=201

2015-03-30 19:00:13 515

原创 hive 创建分区

在表定义时创建partition 创建单分区:create table tbl_01( name string, content string ) partitioned by( dt string ); 表结构中存在name,content,dt三列,以dt文件夹区分;创建双分区:create table tbl_01( name string, content strin

2015-03-26 15:23:48 471

原创 SQL语句

desc [表明]; 获得表中的字段; 获得创建表的结构: show create table [表名]; 如下:CREATE EXTERNAL TABLE tbl_play_pt( ip string, time string, cookie string, inu string, country string, area string, provinc

2015-03-25 17:45:24 360

原创 mongodb —java

mongodb中的java编程 实现 连接本地mongodb,数据的插入,数据的查询import java.net.UnknownHostException;import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;i

2015-03-24 18:47:03 232

原创 shell命令之date

date -d “-2 hour” “+%Y%m%d%H” 表示两小时之前的时间date -d “-1 day” “+%Y%m%d%H” 表示一天之前的时间

2015-03-23 16:14:13 381

原创 Stack

java中Stack常用方法, 1.empty()判断栈中是否为空。 2.peek()从栈顶取值,不删除该值 3.pop()从栈顶取值,删除改值 4.push(E item) 往stack中添加值 5.search(Object o) 查询stack中某一个值所在的位置指标,若是没有则返回-1import java.util.Stack;public class StackTest {

2015-03-19 16:14:03 358

原创 log4j

使用时需要导入log4j-1.*.jar这样的jar包,在Maven项目中,只需要在pom.xml文件中依赖 : <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.14</version> </dependency>java代码:import

2015-03-18 16:36:13 369

原创 Queue

队列是一种特殊的线性表,只允许在表的前段(front)进行删除操作(队头),表的后端(rear)进行插入操作(队尾),一种先进先出(FIFO)的线性表。 java.util.Queue扩展了java.util.Collection接口,在使用时要避免Collection接口中的add()和remove()方法,这两个方法需要抛出异常。 使用offer()来添加元素,使用poll()获取并移出元素

2015-03-17 14:19:33 441

原创 LinkedList

LinkedList是双向列表,就相当于是一个队列,列表中的每个节点都包含了对前一个和后一个元素的引用,可以在任意一端添加或移除元素。 它包含支持双向队列的方法,但是在java标准类库中没有任何显示的用于双向队列的接口。但是可以使用一个组合来创建一个Deque类,并直接从LinkedList中暴露相关的方法。import java.util.LinkedList;public class Deq

2015-03-16 22:31:58 396

原创 Java序列化与反序列化

序列化是将对象转换为可保持或传输格式的过程,反序列化是将流转化成对象。 代码如下import java.io.Serializable;public class Person implements Serializable{ private static final long serialVersionUID = 1L; private String name;

2015-03-09 22:27:52 465

原创 protobuf,xml,json序列化后与解析时间的对比

今天做了下这三种序列化的对比,主要是从序列化后的大小和解释时间的对比:从图中可以得出同一文件序列化后的文件大小是xml>json>proto,解析时间为xml>json>proto; 其中protobuf的解析时间明显要小于json和xml

2015-03-07 23:43:25 1144

原创 final关键字

final修饰的类不可以被继承; final修饰的方法,子类不可以重写,但是可以继承该方法//父类public class Parent { public final void walk(){ System.out.println("Parent_walk"); }}//子类public class Child extends Parent{ //报

2015-03-06 22:52:16 294

原创 Java栈内存与堆内存

Java内存分为栈内存和堆内存; Java函数定义的一些基本类型的变量和对象的引用变量都在栈内存中分配; 当在一段代码块定义一个变量时,在栈中为这个变量分配内存空间,当超过变量的作用域后,会自动释放掉为该变量所分配的内存空间。 存取速度比堆要快,仅次于寄存器,栈数据可以共享。堆内存用来存放由new创建的对象和数组,存取速度比堆要快,可以动态地分配内存大小,生存期也不必事先告诉编译器; Jav

2015-03-05 23:08:11 299

原创 super关键字

super关键字表示超(父)类的意思,而this变量代表对象本身的意思。 接着昨天的代码://Test1表示父类public class Test1 { private String name; private int age; private String email; public Test1(String name,

2015-03-04 23:26:16 254

原创 this关键字

this只能用于方法体内,并且只能在非静态方法中使用,指向对象本身public class Test1 { private String name; private int age; private String email; public Test1(String name, int age , String em) {

2015-03-03 22:45:54 318

原创 类的加载顺序

Java类首次装载时,会对静态成员变量或方法进行一次初始化,但是方法不被调用是不会执行的, 静态成员变量和静态初始化块级别相同,非静态成员变量和非静态初始化块级别相同。public class App { { System.out.println("Parent_Non_static_constructors"); } static { System.

2015-03-02 20:14:34 299

原创 单例模式

单例模式属于对象的创建模式,它确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例; 将默认构造方法用private关键字修饰,那么其他类就不能通过new来创建多个对象; 分为两种创建方式: 1.饿汉式单例类 在类加载的时候,静态变量sind会被初始化,此时类的私有构造函数会被调用,单例类的唯一实例就被创建出来了。public class SinglonDemo { pr

2015-03-01 22:29:15 339

原创 抽象工厂

抽象工厂相对于简单工厂来说多了几个要实现的接口public interface FruitDemo { void eat();}//加一个接口public interface MeatDemo { void eat();}//实现FruitDemopublic class EatFruit implements FruitDemo{ pub

2015-02-28 21:34:03 303

原创 简单工厂

抽象工厂相对于简单工厂来说多了几个要实现的接口public interface FruitDemo { void eat();}//加一个接口public interface MeatDemo { void eat();}public class EatFruit implements FruitDemo{ public void eat(){

2015-02-28 21:17:18 311

原创 String创建对象

先看一段代码:public class App { public static void main(String args[]) { String s1 = "Hello Java"; String s2 = "Hello Java"; String s3 = new String("Hello Java"); System.out.println(s1==s

2015-02-26 20:39:20 355

原创 负数的补码

计算机中负数是用补码的形式来表示: 负数的补码=原码取反+1; 例如-5的二进制原码:1000 0101;高位表示符号位,1表示负数,0表示正数; 原码:1000 0101 反码:1111 1010 补码:1111 1011(反码+1)若一个二进制数为:1111 0011(补码) 反码:1111 0010(补码-1) 原码:1000 11

2015-02-25 20:44:44 2306 3

原创 Java 内部类

Java内部类可以很好的实现多继承; 内部类可以访问外部类的私用成员;public interface Test01 { public void test();}public class Test02 { public void test(){ System.out.println("Test02_test()!"); }}public class Test0

2015-02-25 19:02:17 264

原创 Java的几种访问权限

public: 一般称之为“公共的”,被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包访问。 private: 一般称之为“私有的”,被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。 protected: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类

2015-02-23 14:08:04 351

原创 Java封装性

Java封装性指其他类不能随意更改本类中的成员变量 在一个类中用private关键字修饰成员变量,表示这个成员变量是私有的,只能被本类中的方法调用,而不能被其他类的成员调用。 其他类要想对这个私有的变量进行操作,一般都有读取和赋值操作,分别使用getXXX()和setXXX()两个方法,完成封装性。 除了使用setXXX()方法对类中的属性进行赋值,还可以使用构造方法进行赋值:public c

2015-02-22 22:14:31 452

原创 Java接口

接口的一般特点 1、 java接口可以包含成员变量,但是它们都是隐式的static 和final变量,接口中的成员变量为常量(大写,单词之间用”_”分隔) 2、Java接口中的方法默认都是public,abstract类型的(都可省略),没有方法体,不能被实例化 3、接口中没有构造方法,不能被实例化 4、一个接口不能实现(implements)另一个接口,但它可以继承多个其它的接口 5、继

2015-02-21 23:09:26 279

原创 Socket通讯

1.创建Client端 创建一个Socket实例,构造函数向指定的远程主机和端口建立一个TCP连接。 通过Socket套接字的输入输出流(I/O Stream) 进行通信。public class TCPClient { public static void main(String args[]){ Writer out =null; Sock

2015-02-20 23:58:18 352

原创 InputStream与OutputStream

之前学IO的时候,分不清什么时候用in和out, 通过流的动向区分in和out 若是硬盘,网络———->内存,那么就是要用in 若是内容———->硬盘,网络,那么就是要用out, 简单来说就是内存的数据到外设就是out,外设数据到内存就是inpublic class Test01 { public static void main(String args[]) throws Exc

2015-02-19 22:57:01 427

原创 static

1.引用static的方法和变量,不需要和实例捆绑在一起,这可以提高代码的编写效率,在类装载的时候就开始初始化了。 2.静态方法中只能引用静态方法,不能引用非静态方法,而非静态方法可以引用静态方法和非静态方法。 3.被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。 4.对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分

2015-02-18 23:23:13 322

原创 java抽象类

一个类中只要含有抽象方法,那么这个类就是抽象类。 如 public abstract class Person{ public void talk() { } public abstract void eat(); public abstract void drink(); } 该类中含有抽象方法和一般方法,那么这个Person类就是抽象类

2015-02-17 22:56:06 333

原创 重载与重写

先说下重载(Overloading): (1)方法重载指的是在一个类中有几个同名函数同时存在,但具有不同的参数个数或者参数类型不同。 (2)调用方法时根据传递的不同参数个数或者参数类型来决定使用哪个方法,体现了多态性。class Person { private String name; Person(String name){ this.name = name;

2015-02-16 22:34:53 356

原创 wait()与notify()/notifyAll()

这3个方法并不是Thread单独的方法,他们是Object的方法。 调用wait()方法时会释放锁,这样其他线程就获得当前对象的锁,从而进入synchronized方法中;可以通过notify()/notifyAll(),或者时间到期,从wait()中恢复执行。

2015-02-15 23:38:37 312

原创 synchronized 关键字

当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码,保证了线程的安全。 举例,在函数fun()前加synchronized关键字:public class ThreadDemo { public static void main(String args[]) { UserBean user = new UserBean("Jack",

2015-02-14 21:03:45 298

原创 java多线程

Thread类和Runnable接口均能实现多线程,一般提倡用使用Runnable。原因是Java是单继承的,继承Thread就比较局限了;第二是对于资源共享时,Runnable避免了资源的重复使用。 例子:public class App extends Thread{ private String name; App(){} App(String name){

2015-02-13 22:27:44 330

原创 List常用方法

List接口继承于Collection接口 ArrayList,LinkedList,Vector均实现了List接口 主要

2015-02-12 16:34:33 578

原创 continue与break区别

1.在循环语句中,continue跳过当前的循环,本次循环不执行continue后面的语句,但是下次循环还会执行。 2.break用于退出当前循环。 例子:public class Test1{ public static void main(String[] args) { for(int i = 0; i < 6; i++) { if(i == 3)

2015-02-11 20:31:59 340

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除