- 博客(35)
- 收藏
- 关注
原创 JVM 内存初学 (堆(heap)、栈(stack)和方法区(method) )
这两天看了一下深入浅出JVM这本书,推荐给高级的java程序员去看,对你了解JAVA的底层和运行机制有比较大的帮助。废话不想讲了.入主题:先了解具体的概念:JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只
2017-04-09 11:37:04
259
转载 HDFS-HA的配置-----自动Failover
1、概述在手动FailOver的基础上,自动Failover增加了两个东西:一个是ZooKeeper集群,一个是ZKFailoverController(简称:ZKFC)ZK集群:作为一个高可靠系统,能够为一小部分协同数据提供监控,将数据的更改随时反应给客户端。HDFS的HA依赖zk提供的两个特性:一个是错误监测,一个是活动节点选举 Failure detection
2017-04-03 22:53:39
391
转载 HA功能中ZKFC对NN状态的控制
FC是要和NN一一对应的,两个NN就要部署两个FC。它负责监控NN的状态,并及时的把状态信息写入ZK。它通过一个独立线程周期性的调用NN上的一个特定接口来获取NN的健康状态。FC也有选择谁作为Active NN的权利,因为最多只有两个节点,目前选择策略还比较简单(先到先得,轮换)。ZKFC是Hadoop中通过ZK实现FC功能的一个实用工具。ZKFC的主类是org.apache.hadoop
2017-04-03 22:53:03
298
转载 redis incr incrby decr decrby命令
incr、incrby、decr、decrby命令的作用和用法redis中incr、incrby、decr、decrby属于string数据结构,它们是原子性递增或递减操作。incr递增1并返回递增后的结果;incrby根据指定值做递增或递减操作并返回递增或递减后的结果(incrby递增或递减取决于传入值的正负);decr递减1并返回递减后的结果;decrby根据指定值做递增或递减
2017-03-30 23:59:26
2904
转载 spring+ActiveMQ+JMS+线程池实现简单的分布式,多线程,多任务的异步任务处理系统
前言:随着系统的业务功能不断增强,传统的单机、单任务,单线程的运行模式已经逐渐的被淘汰,取而代之的是分布式,多任务,多线程,当然,现在开源的这方面的框架也非常的多,大概的思想也都类似,下面就结合我这一年多的工作心得,分享一个简单易实现的分布式,多任务,多线程的异步任务处理系统的基本实现。1.系统部署图该系统主要由3部分构成,任务生产者集群,消息中间件集群,任务消费者集群,下
2017-03-30 23:56:58
1015
原创 zookeeper安装
1、修改本机的主机名为hadoopserver2,并在hosts中添加域名映射修改操作系统的/etc/hosts 文件中添加:192.168.137.101 hadoopserver22、解压zookeeper-3.4.6到指定目录 tar -zxvf zookeeper-3.4.6.tar.gz3、创建数据和日志目录 cd /home/
2017-03-19 00:25:58
234
转载 Java反射机制详解
1反射机制是什么反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。2反射机制能做什么反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断
2017-03-14 20:12:03
218
原创 java初始化顺序与反射
public class MyTest {public static void main(String[] args) {//1---------//IoUtil.fun1();//2---------//new IoUtil();try {Class class1 = Class.forName("org.wzq.note1.IoUtil");Io
2017-03-14 20:10:07
199
原创 java io的编码问题
1、JAVA读取文件,避免中文乱码。 /** * 读取文件内容 * * @param filePathAndName * String 如 c:\\1.txt 绝对路径 * @return boolean */ public static String readFile(String filePathAndName) {
2017-03-05 12:22:37
196
原创 一个可以作为代理服务器或者转发的java类
项目中用到,这里把它给简化和通用了,突出基本思路,具体可以基于这个类来修改。基于java容器和servlet。 package com.xxx.first; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream;
2017-03-04 20:24:09
753
转载 HashMap的实现原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本
2016-12-28 15:21:52
162
转载 简单工厂模式和工厂方法模式
在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些情况,新对象的建立就是一个 “过程”,不仅是一个操作,像一部
2016-12-14 20:05:12
195
原创 socket
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class Server {
2016-12-13 21:19:49
173
转载 Jms两种message传输方式Topic和Queue的比较
Jms规范里的两种message传输方式Topic和Queue,两者的对比如下表(): TopicQueue概要Publish Subscribe messaging 发布订阅消息Point-to-Point 点对点有无状态topic数据默认不落地,是无状态的。Queue数据默认
2016-12-13 00:39:26
575
转载 http请求中GET、POST、PUT、DELETE的区别
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。 1
2016-12-11 15:57:16
638
原创 http协议中的get和post
先看一个post方式登录的例子:请求头Host: www.xxx.comUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=
2016-12-11 15:29:57
43942
原创 对象序列化为何要定义serialVersionUID
在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的Session对象,当有10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些seesion先序列化到内存,等要用了,再还原到对象中,说白了,就是能将一个2进制文件变成内存中的对象。在JAVA中,要实现这种机制,只要实现Serializ
2016-12-11 13:16:58
237
转载 dubbo 入门教程 基于zookeeper
摘要: Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。从上午发布的安装zookeeper 遇到的第一个错误开始 一直在搞dubbo 中午吃了饭 睡了会觉 。中间错误一个又一个 慢慢的都解决了。小有成就,哈哈。算这个星期天没有白费吧。 学习的过程值得留恋。分享一下吧只是之前
2016-12-09 21:41:03
189
原创 spring bean初始化时机
在每个Spring IoC容器中一个bean定义只有一个对象实例(共享) 默认情况下会在容器启动时初始化bean(单例的都会被初始化) 而scrope="prototype" 多例 默认不启动 我们可以指定Bean节点的lazy-init=“true”来延迟初始化bean这时候,只有第一次获取bean会才初始化bean如: id="
2016-12-06 20:37:58
1045
原创 拦截器
拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。 在Webwork的中文文档的解释为——拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种
2016-12-06 20:35:52
178
原创 监听器
1: 监听器的定义:监听器实际上是一个类,这个类实现了特定的接口,然后将这个类在 web.xml 文件中进行描述,这样服务器在启动的时候就可以实例化这个类,启动监听器。当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。例如统计用户在线人数。web监听器是Servlet规范中定义的一种特殊类,用于监听ServletContext,HttpSession
2016-12-06 20:16:12
250
原创 string的问题
public class StringDemo { /** * @param args */ public static void main(String[] args) { String s1 = new String("abc");//这里会创建两个对象,两个对象内容都是abc。注意:s1是引用,不是对象。 /** * 首先,查看string poo
2016-12-06 19:43:18
232
原创 servlet生命周期
第一次访问的时候调用init,然后service第二次之后一直调用service当服务器重启时调用destroy,注意是“重启”时,"关闭"的时候不会销毁!!重启或启动后,第一次访问,同样调用init,然后service以次类推只有第一次访问的时候才会始终化,从第二次开始不再初始化,哪怕请求来自不同的客户端。也就是说,服务器的一次启动之后只可能有一个
2016-12-06 19:39:15
184
原创 过滤器
1.过滤器Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该
2016-12-06 19:38:13
259
原创 java线程常用方法及概念总结
1、sleep()使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的
2016-12-04 19:26:08
220
原创 java的锁池和等待池wait notify notifyall
锁池:某个线程中调用了对象锁的notify()方法之后,争夺执行权,进入锁池。等待池:某个线程中调用了对象锁的wait()方法之后,该线程主动放弃执行权并等待唤醒,进入待待池。public class ThreadTest{ int count=0; Object obj = new Object(); public static void main(S
2016-12-04 19:16:14
1317
原创 java基本数据类型
类型与所占字节:boolean 布尔型 1/8 byte 字节类型 1char 字符型 2 一个字符能存储一个中文汉字short 短整型 2int 整数类型 4float 浮点类型(单精度) 4long 长整
2016-12-03 20:58:22
169
原创 wait()和sleep()
对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等
2016-12-03 18:09:47
266
原创 this
this关键字,关于它的解释,可以概括为:哪一个对象在用这段代码,this就代表谁。例如,“人”这个类,张三说,“我”的“名字”,这个“我”字就相当于“this”。 public class ThisDemo { public static void main(String[] args) { ThisPerson p1 = new This
2016-12-03 18:02:06
157
原创 wait()和notify()入门例子
wait()和notify()一系列的方法,是属于对象的,不是属于线程的。它们用在线程同步时,synchronized语句块中。我们都知道,在synchronized语句块中,同一个对象,一个线程在执行完这一块代码之前,另一个线程,如果传进来的是同一个object,是不能进入这个语句块的。也就是说,同一个对象是不能同时被两个线程用来进入synchronized中的。这就是线程同步。废话
2016-12-03 17:59:26
269
原创 java初始化顺序
public class Father { int a=1; static int b=2; { System.out.println("father-a=="+a); System.out.println("father-b=="+b); } static{ //System.out.println("a=="+a); System.out.println("fathe
2016-12-03 17:52:03
145
原创 java线程同步入门例子
使用同一个对象锁+synchronized实现线程同步class RunnableCase2 implements Runnable{public void run() {synchronized (this) {try {System.out.println(Thread.currentThread().getId()+"-start");Thread.sleep(500
2016-12-03 17:41:05
210
原创 java io总结
一、两种类型的流InputStream和OutputStream:两者都为抽象类,在没有处理流的情况下,每次只能从数据源读取一个字节和向数据源写出一个字节,俗称字节流。Reader和Writer:两者同样为抽象类,在没有处理流的情况下,每次只能从数据源读取一个字符(2个字节)和向数据源写出一个字符,俗称字符流。注意:1. 流对象实例后,必
2016-11-30 19:48:40
178
原创 java io 字符流与字节流结构
Java中的流分为两种:1:字符流 输出 java.io.Writer(implement java.lang.Appendable,java.io.Console,java.io.Flushable) 其子类有: java.io.BufferedWriter java.io.CharArray
2016-11-28 22:30:39
239
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人