Java技术
文章平均质量分 66
vonzhou
这个作者很懒,什么都没留下…
展开
-
web 项目部署
1.Java web 项目部署在tomcat安装目录下找到conf中的sever.xml文件,在其中Host的标签中加入 path="/zl" docBase="D:\Workspaces\MyEclipse8.6\zl1.0\WebRoot" reloadable="true" /> ---->path上下文路径,docBase物理路径,映射为path虚拟目录rel原创 2013-04-16 06:56:36 · 821 阅读 · 0 评论 -
Collections.synchronizedList 工厂方法
Collections.synchronizedList 工厂方法通常的Map,Set,List实现都不是线程安全的,通过这些工厂方法可以得到相应的同步容器,相当于增强了访问控制,把一个链表对象传递过来后,我们都通过返回的这个链表对象来进行各种操作(都是同步方法),而不再操纵底层的那个链表。此外,在Vector和同步封装器类中是用内置锁来来支持客户端加锁,所以我们可以进行扩展。在对原创 2014-09-15 14:26:36 · 2594 阅读 · 1 评论 -
Java中都是值传递 pass-by-value
注意 ,在Java中都传值,而不是引用,对于对象实例,也只是传递的是引用的值,所以要理清思路。原创 2015-03-09 22:12:48 · 1653 阅读 · 0 评论 -
Java集合中二分查找算法实现
Java集合中二分查找算法实现Arrays.binarySearch实现了对有序数组特定区间的二分查找,虽然我们觉得很简答,但是阅读源码的确能看到实现这些库的优秀技巧,总是在追求完美和高效。值得学习的地方有:(1)边界检查;(2)求中位数的时候使用位移操作,而不是 x/2;(3)如果查找的元素不在数组中,通过返回值昭示了应该插入的位置,而不是直接返回-1;原创 2015-03-30 16:51:16 · 3137 阅读 · 0 评论 -
Runtime类理解
Runtime类理解虽然我们知道在编写java程序时,只有线程的概念,依托于JVM这个进程,但是API提供了Runtime这个类,(Every Java application has a single instance of class Runtime that allows the application to interface with the environment in w原创 2015-04-29 14:51:30 · 820 阅读 · 0 评论 -
分析一个Java Class文件
Java源码文件TestClass.java:package jvm.chapter6;//P166public class TestClass { private int m; public int inc(){ return m+1; }}展示这个Class文件的16进制内容:从头开始分析=>ca fe ba be :magic number原创 2015-05-01 09:34:11 · 1880 阅读 · 3 评论 -
Maven实战(1)
Maven实战(1)本文的目的: 了解Maven构建工具的基本思想 maven的基本命令 maven-shade-plugin的作用 如何在Eclipse中使用 安装maven,新建helloworld作为示例;注意groupId,artifactId代表的含义;clean, compile, test, package, install 命令。这样运行mvn pack原创 2015-06-08 15:29:44 · 1190 阅读 · 0 评论 -
得到文件某行的偏移量(get byte offset of a line)
得到文件某行的偏移量(get byte offset of a line)场景:通过对文件的一趟处理,把每行的offset得到。现有的文件系统不能直接定位到某一行,如果你知道行号,也只能一行行的读下去,找到你想要的line。但是当文件很大的时候,就需要一定的预处理,保存行的offset,后续的处理可以根据offset直接定位到具体的line,无疑这会提高速度。所以需要实现:line到byte off原创 2015-08-25 13:11:37 · 7167 阅读 · 0 评论 -
RocketMQ 刷盘实现
RocketMQ 刷盘实现标签(空格分隔): RocketMQBroker 在收到Producer发送过来的消息后,会存入CommitLog对应的内存映射区中,见CommitLog类的putMessage方法。该方法执行OK后,会判断存储配置中刷盘模式:同步or异步?继而进行对应的操作。 ServiceThread –> FlushCommitLogService –> GroupCommit原创 2015-08-03 07:44:46 · 8800 阅读 · 6 评论 -
RocketMQ 源码分析
RocketMQ 源码分析RocketMQ 的设计思想来自于Kafka,在具体设计时体现了自己的选择和需求,具体差别可以看RocketMQ与Kafka对比(18项差异)。接下来记录下自己阅读源码的一些探索。RocketMQ的整体架构如下,可以看到各个组件充当的角色,Name Server 负责维护一些全局的路由信息:当前有哪些broker,每个Topic在哪个broker上等; Broker具体处原创 2015-08-01 22:20:08 · 9619 阅读 · 6 评论 -
Java 数组反射(Array Reflection)
1. 在不确定某个参数或对象是否是数组的时候,就可以使用发射机制,把该对象的Class对象传给Array.isArray(Class) 方法进行判断。通过Class对象的 getComponentType() 方法可以进一步知道数组组件的具体类型,数组如果是多维的话可以递归调用Array.isArray;2.Array.getLength(class)可以得到数组的大小;3.可以运行时利用原创 2014-09-18 20:17:13 · 3289 阅读 · 0 评论 -
HTTP Status 405 - HTTP method GET is not supported by this URL
错误 如下 :type Status reportmessageHTTP method GET is not supported by this URLdescriptionThe specified HTTP method is not allowed for the requestedresource.原因:对于HTTP/1.1,父类HttpServlet的doGet或do原创 2013-04-16 12:19:39 · 2911 阅读 · 0 评论 -
doGet和doPost的区别
get和post的区别并非在地址栏中看到的那么简单,二者的不同来自于协议本身。向服务器发送请求的形式不同。 GET/zl/login.jsp?username=vonzhou&password=vonzhou HTTP/1.1(CRLF)Host:127.0.0.1......Connection: keep-alive POST /zl/login.jsp HT原创 2013-04-16 14:06:46 · 1078 阅读 · 0 评论 -
Android客户端和服务器交互
Android客户端和服务器交互实现流程:(客户端输入的用户名和密码提交到服务器端判断后给出相应的操作。) 客户端代码:activity_login.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android原创 2013-04-16 22:17:16 · 1230 阅读 · 0 评论 -
Head First观察者模式(Observer)
观察者模式定义对象之间的一对多的依赖,当那一个对象(主题)状态改变时,所有的依赖者(观察者)都会收到通知并作出相应的动作。观察者模式的使用非常广泛。代码实现:-------------------主题接口public interface Subject { public void registerObserver(Observer o); p原创 2014-06-25 15:35:38 · 1211 阅读 · 0 评论 -
Head First装饰模式(Decorator)
装饰者模式是动态的将责任附加到另一个对象上,由这个对象负责;这个装饰与被装饰的组件接口一致,因此对使用该组件的客户透明;其中的关键点是装饰者可以在所委托被装饰者的行为之前和之后,加上自己的行为,已达到特点的目的。代码如下:-------------Component//装饰者模式一般使用抽象类public abstract class Beverage {原创 2014-06-26 16:09:47 · 1049 阅读 · 0 评论 -
Head First 单例模式
单件模式确保一个类只有一个实例,并提供一个全局访问点。适用于资源敏感的场景。实现://经典实现方式,但是在多线程环境下就会出问题,//可能连个线程同时进入了uniqueInstance==null那条控制路径public class Singletion { private static Singletion uniqueInstance;原创 2014-07-01 14:32:36 · 1002 阅读 · 0 评论 -
使用 jackson 解析 json 示例
首先需要下载3个包,下载地址在Github ,这三个核心模块分别是:Streaming ("jackson-core") defines low-level streaming API, and includes JSON-specific implementationsAnnotations ("jackson-annotations") contains standard Jack原创 2014-06-11 18:35:41 · 3020 阅读 · 0 评论 -
”Java 方法可以返回数组类型“ 所想到的
在C和C++中不能返回一个局部变量,因为函数中的局部变量分配的存储空间在栈上,当函数执行完后会被重新利用,所以想要返回数组类型,有两种方式:1)静态变量(static in a function可以在函数调用之间保持值有效),2)利用malloc动态分配,但是最终要记得释放。下面是几个简单测试程序:1.错误的示例:#include int *func(int n){原创 2014-07-28 14:23:24 · 5103 阅读 · 0 评论