自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java内省

JDK提供了对JavaBean来进行操作的一些api,这套api就称为内省。通过内省方式得到ReflectPoint类中的x的属性值,并且把该属性值设置为10ReflectPoint类:public class ReflectPoint {private int x=3;public int getX() {  return x; } public void s

2015-01-31 22:26:24 413

原创 java中的注解

jdk1.5开始就增加了对元数据的支持,也就是注解(Annotation),这种标记可以在编译,类加载,运行的时候被读取。1 有几种基本的注解 1) @Override(重写父类方法):只能用于方法,不能用于其他程序元素。用来指定方法覆盖。常常可以用来检查是否覆盖父类的方法 public class Erica { @Override public boolean equals

2015-01-31 12:38:56 488

原创 编写自己的classloader加载加密过的class

1 编写一个类,该类继承Date类:package erica.classloader;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.Date;public class ClassLoaderAttachment extends Date { @Override

2015-01-28 21:47:21 1928

转载 Java类加载器总结

1.类的加载过程  JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示:1) 装载:查找并加载类的二进制数据;2)链接:验证:确保被加载类的正确性;准备:为类的静态变量分配内存,并将其初始化为默认值;解析:把类中的符号引用转换为直接引用;

2015-01-26 14:56:19 479

转载 sleep和wait的区别

1.  Java中sleep和wait的区别① 这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep,sleep和wait都会让出cpu执行权,唯一的区别在于sleep不释放锁,到一定时间自动会醒,

2015-01-20 18:54:04 479

转载 java内存溢出和内存泄露

虽然jvm可以通过GC自动回收无用的内存,但是代码不好的话仍然存在内存溢出的风险。一、为什么要了解内存泄露和内存溢出? 1、内存泄露一般是代码设计存在缺陷导致的,通过了解内存泄露的场景,可以避免不必要的内存溢出和提高自己的代码编写水平; 2、通过了解内存溢出的几种常见情况,可以在出现内存溢出的时候快速的定位问题的位置,缩短解决故障的时间。   二、基本概念 

2015-01-20 18:19:23 477

转载 Java HashMap的死循环

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在并发下必然出现问题。但是,我发现近几年,很多人都经历过这个事(在网上查“HashMap Infinite Loo

2015-01-18 19:26:46 453

原创 Callable和Future创建线程

java5开始,提供了Callable接口,该接口是Runnable的增强版本,提供了一个call()方法作为执行体,但是call()方法比run()方法功能更强大。call():有返回值,可以声明抛出异常. java5提供FutureTask接口来代表Callable接口里面的call方法返回值,并提供了一个FutureTask的实现类,该实现类实现了Runnable接口,可以作为T

2015-01-18 16:40:38 664

原创 阻塞队列BlockingQueue

BlockingQueue作为线程同步的工具,并不是作为一个容器使用,它具有一个特征:当生产者线程试图向其放入元素的时候,如果队列已满,则该线程被阻塞,当消费者线程试图从BlockingQueue中取出元素时,如果队列已空,则该线程阻塞。BlockingQueue在jdk文档里面有如下几个方法: 抛出异常特殊值阻塞超时插入add(e)

2015-01-18 13:48:25 492

原创 Semaphore实现信号灯

信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而release() 释放一个许可。比如在Windows下可以设置共享文件的最大客户端访问个

2015-01-17 19:37:19 535

转载 java 中 ReentrantReadWriteLock的读锁和写锁的使用

jdk文档中关于ReentrantReadWriteLock类使用的一个很好的例子,以下是具体的介绍:  在使用某些种类的 Collection 时,可以使用 ReentrantReadWriteLock 来提高并发性。通常,在预期 collection很大,读取者线程访问它的次数多于写入者线程,并且 entail 操作的开销高于同步开销时,这很值得一试。例如,以下 是一个使用 Tre

2015-01-17 14:54:46 2682

转载 共同父域下的单点登录

单点登录(Single Sign On),简称为SSO,SSO不仅在企业级开发很常用,在互联网中更是大行其道。随便举几个例子,比如我们登录新浪微博后,再访问新浪首页后,我们发现,已经自动登录了;再比如我们登录CSDN后,可以写博客、逛论坛、下载资源等等。前者是完全跨域的单点登录,下文会讲,后者是共同父域下(www.csdn.net、blog.csdn.net、bbs.csdn.net、passpo

2015-01-15 15:53:50 488

转载 java web移植 遇到Project facet Java version 1.7 is not supported

在移植eclipse项目时,如果遇到“Project facet Java version 1.7 is not supported.”项目中的jdk1.7不支持。说明项目是其他版本jdk编译的,在eclipse里运行时会报版本不支持。解决办法:法1,选中项目 Properties , 选择 Project Facets,右击选择 Java , Chan

2015-01-15 14:43:20 579

转载 java生产者消费者

对于多线程程序来说,不管任何编程语言,生产者和消费者模型都是最经典的。就像学习每一门编程语言一样,Hello World!都是最经典的例子。 实际上,准确说应该是“生产者-消费者-仓储”模型,离开了仓储,生产者消费者模型就显得没有说服力了。对于此模型,应该明确一下几点:1、生产者仅仅在仓储未满时候生产,仓满则停止生产。2、消费者仅仅在仓储有产品时候才能消费,

2015-01-13 16:56:10 423

原创 MapReduce的用法

MapReduce是聚合工具中的明星,count,distinct,group能做的事情,MapReduce都可以完成,它是一个可以轻松并行化到多个服务器的聚合方法.简单的说就是将大批量的工作(数据)分解(MAP)执行,然后再将结果合并成最终结果(REDUCE)。这样做的好处是可以在任务被分解后,可以通过大量机器进行并行计算,减少整个操作的时间。 1persons集合里面有如下数据,用Ma

2015-01-11 15:13:50 1385

转载 MongoDB 时区问题

MongoDB存储时间类型数据时,都是先转换为UTC时间,然后存储到数据库中下面我们来看一个例子:如上图new Date() 直接返回带有本地时区的当前时间new Date().toLocaleString() 返回的是包含当前时区信息的时间字符串我现在在CST(China Standard Time中国标准时),所以字符串代表的时间为2014年

2015-01-09 10:07:44 6812

转载 集群、分布式、负载均衡区别与联系

1、Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群)集群是一个统称,他分为好几种,如高性能科学群集、负载均衡群集、高可用性群集等。 科学群集 、高性能集群(High performance cluster,HPC) 它是利用一个集群中的多台机器共同完成同一件任务,使得完成任务的速度和可靠性都远远高于单机运行的效果。弥补了单机性能上的不足。该集群在天气预报、

2015-01-03 18:09:14 888

转载 mongodb的用户认证

mongodb默认是不认证的,默认没有账号,只要能连接上服务就可以对数据库进行各种操作,mongodb认为安全最好的方法就是在一个可信的环境中运行它,保证之后可信的机器才能访问它,可能这些对一些要求高的环境,安全还不够mongodb提供用户认证,需要在启动时加上--auth开启认证认证前需要添加账号添加管理员账号:默认情况下系统中没有用户> use admin       --

2015-01-02 19:21:03 565

转载 mongodb启动mongo.exe的时候一闪而过解决

当你到cmd里,输入mongo.exe,报错:JavaScript execution failed: Error: couldn’t connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:L1121、windows用户解决方法:go to services.msc stop MongoDB service.停止

2015-01-02 14:04:51 7569 2

原创 MongoDB的管理

1 启动项 mongod  -help2 通过conf文件来启动mongo   mongod --config mongodb.conf  mongodb.conf的文件内容  dbpath=D:\MongoDBDATA2  port=8888 3 停止mongodb   1)如果服务器是前台进程运行在终端,ctrl+c可以关闭   2) use admin

2015-01-01 22:53:12 580

空空如也

空空如也

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

TA关注的人

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