java基础
Java蜗牛
这个作者很懒,什么都没留下…
展开
-
Java内部类详细说明
内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类如同一个人是由大脑、肢体、器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液、跳动)显然,此处不能单方面用属性或者方法表示一个心脏,而需要一个类而心脏又在人体当中,正如同是内部类在外部内当中 实例1:内部类的基本结构1转载 2015-03-14 20:48:54 · 534 阅读 · 0 评论 -
nio中selectkey,selector的作用
Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。为什么使用Selector?仅用单个线程来处理多个Channels的好处是,只需要更少的线程来处理通道。事实上,可以只用一个线程处理所有的通道。对于操作系统来说,线程之间上下文切换的开销很原创 2014-09-25 11:55:25 · 6094 阅读 · 0 评论 -
netty的线程池-----揭示了使用两个线程池的原因
线程模型是Netty的核心设计,设计地很巧妙,之前项目中有一块处理并发的设计和Netty的Eventloop单线程设计类似,效果得到了实证。Netty5的类层次结构和之前的版本变化很大,网上也有很多文章写Netty的线程模型,Reactor模式,比如这篇http://blog.csdn.net/xiaolang85/article/details/37873059, 应该是引自转载 2014-09-25 07:19:48 · 17930 阅读 · 8 评论 -
Java中byte[]与int之间的转化
JAVA基于位移的 int类型和tyte[]之间转换 [java] view plaincopy/** * 基于位移的int转化成byte[] * @param int number * @return byte[] */ public static byte[] intToByte(int numbe原创 2014-09-25 12:47:24 · 659 阅读 · 0 评论 -
netty的启动过程
Netty5的类层次结构相比于之前版本有了很大的变化,我准备写一系列文章来分析Netty5的源码。这篇讲讲服务器绑定的过程。先总结一下,服务绑定主要做了几件事:1. 创建NioEventLoopGroup线程池2. 创建NioServerSocketChannel,并初始化,注册时没有直接把SelectionKey.OP_ACCEPT注册上,只是注册了一个0,把转载 2014-09-25 06:48:29 · 920 阅读 · 0 评论 -
tomcat中的filter和listener
1.Filter是过滤器,过滤一些不友好或是你不想要的东东,2.Filter可以实现对请求的过滤和重定向等,也就是说可以操作request和response,session等对象3.Filter 是struts的核心控制器,负责拦截所有用户请求。4.Filter(过滤器):你可以写个类实现Filter接口,然后配置到web.xml中,那么Tomcat在接受到Http请求后首先会调用Fi转载 2014-09-26 20:10:53 · 1399 阅读 · 0 评论 -
servlet,jsp,listener,filter作用详解
目前基于java的开发基本稳定。JavaEE开发大致分为两种:以spring为核心的轻量级JavaEE企业开发平台;以EJB3+JPA为核心的经典JavaEE开发平台。前者降低了开发、部署成本。在需要具有高度伸缩性、高度稳定性的企业应用里,如银行系统、保险系统,以EJB3+JPA为核心的经典JavaEE应用具有广泛占用率。可参考《经典JavaEE企业应用实战》。 理转载 2014-09-26 20:06:48 · 1966 阅读 · 0 评论 -
Java中乱码问题的解决
一、常识了解 1.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立;2.java.nio.charset.Charset.defaultCharset() 获得平台默认字符编码;3.getBytes() 是通过平台默认字符集进行编码; 二、中文乱码出现 在学习任何一门技术时,经常会有初学者遇到中文原创 2014-09-16 11:51:33 · 537 阅读 · 0 评论 -
tomcat中的乱码解决之道
tomcat中文乱码问题 在JavaWeb开发中,使用tomcat,与字符编码有关的有浏览器当前使用的编码(用于请求数据的编码),如果是jsp页面且没有手动修改浏览器浏览器编码,则就是page指令的pageEncoding属性所指定的编码 tomcat的server.xml中的Connector元素的URIE转载 2014-09-16 12:12:25 · 668 阅读 · 0 评论 -
jvm字节代码的编译机制
深入理解JVM—字节码编译机制原创 2014-09-15 07:55:47 · 718 阅读 · 0 评论 -
将非文本信息存入xml
把图片内容放入XML文件中. public static void main(String[] args) { BASE64Encoder encoder=new BASE64Encoder(); try { File f=new File("1_mxz55.jpg"); if(f.ex原创 2014-09-26 09:43:03 · 468 阅读 · 0 评论 -
XStream官方Demo(xml,json,javabean互转)
Suppose that our client has defined a base XML file that we should make XStream read/write: first My first blog entry. tutorial Today we have developed a nice ali原创 2014-09-26 12:45:15 · 1042 阅读 · 0 评论 -
JavaBean到xml和json-----xstream
像一般的开发 如果需要加密原创 2014-09-26 10:58:41 · 578 阅读 · 0 评论 -
网盘问题,OOM
今天一直在做一个SSH整合的网盘上传下载系统,写一下心得!首先,我做的的是将上传的文件保存到数据库里面,但是只要上传大于几M以上的文件,就会报java.lang.OutOfMemoryError: Java heap space 这个异常,后面百度了一下,原来知道数据库里面不能保存过长的二进制文件,所以马上改代码,因为整个项目分层体系很清晰,所以代码修改量很少,呵呵,又转载 2014-09-24 11:47:19 · 494 阅读 · 0 评论 -
Java实现http协议的解析
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.ByteArrayInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStre原创 2014-09-14 18:35:03 · 1279 阅读 · 0 评论 -
JavaIO总结Demo大全(3)
6.字符输出流Writer定义和说明:在上面的关系图中可以看出:Writer 是所有的输出字符流的父类,它是一个抽象类。CharArrayWriter、StringWriter 是两种基本的介质流,它们分别向Char 数组、String 中写入数据。PipedWriter 是向与其它线程共用的管道中写入数据,BufferedWriter 是一个装饰器为W原创 2014-09-14 13:12:58 · 511 阅读 · 0 评论 -
解释一下粘包和拆包的原理
着重一点,就是上一篇说的selectKey的附件,我们需要讲一个bytebuffz原创 2014-09-25 13:08:34 · 1596 阅读 · 0 评论 -
标准的http返回头
package socket;import java.io.DataOutput;import java.io.DataOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class Server { public static vo原创 2014-09-27 11:29:50 · 880 阅读 · 0 评论 -
Java泛型总结
普通泛型class Point{ // 此处可以随便写标识符号,T是type的简称 private T var ; // var的类型由T指定,即:由外部指定 public T getVar(){ // 返回值的类型由外部决定 return var ; } public void setVa转载 2015-03-17 22:03:39 · 534 阅读 · 0 评论 -
tomcat实现错误处理的原理
Tomcat 的错误页面是由 org.apache.catalina.valves.ErrorReportValve 类输出来的。如果想自定义错误页面,不需要修改该类。Servlet 规范声明了相关的API,只需要在每个 web 应用的 web.xml 里定义。可按照错误类型、错误代码配置。例如:http://java.sun.com/xml/ns/javaee" xmlns:xsi=转载 2014-11-02 21:25:34 · 3670 阅读 · 0 评论 -
Java中的URL与FILE相互转化
首先,想比较一下这两者的不同。URL用于网络,所以带有明显的protocol,而且对于中文及符号支持的很不好。File就是我们平常系统中的文件路径了,对于中文及符号都支持,但是已经没有protocol了。所以,虽然两者都可以表示文件路径,但是却不能混用了。典型的URL和File路径的比较:URL:file:/D:/my%20java/URL&FILE/%e5%9b%be%e7%89%87/原创 2014-10-31 13:02:21 · 2122 阅读 · 0 评论 -
Java中获取set和get方法
import java.beans.PropertyDescriptor;import java.lang.reflect.Field;import java.lang.reflect.Method;public class ReflectTest { public static void main(String[] args) throws Exception {原创 2014-10-31 19:31:16 · 846 阅读 · 0 评论 -
java 里面保留字volatile及其与synchronized的区别
1、锁提供了两种主要特性:互斥(mutual exclusion) 和可见性(visibility)。互斥即一次只允许一个线程持有某个特定的锁,因此可使用该特性实现对共享数据的协调访问协议,这样,一次就只有一个线程能够使用该共享数据。可见性要更加复杂一些,它必须确保释放锁之前对共享数据做出的更改对于随后获得该锁的另一个线程是可见的 —— 如果没有同步机制提供的这种可见性保证,线程看到的共享变量原创 2014-10-13 09:44:36 · 563 阅读 · 0 评论 -
Java是怎么保证原子性,可见性
先来谈谈yaunzixing原创 2014-10-13 13:13:27 · 1090 阅读 · 0 评论 -
http协议------费了番脑筋
当我们向服务器提交请求的时候,一般分为post和get,get是将数据通过bian原创 2014-09-24 10:21:56 · 534 阅读 · 0 评论 -
NIO不错的
欢迎大家讨论,我也是接触时间不长,有问题欢迎大家指正。欢迎转载,转载请注明出处楔子最近在研究JAVA NIO的相关知识,发现网上多是三种类型的研究文章,一是单Reactor单Selector,二是主从Reactor单Selector,三就是无Reactor单Selector,有一篇是一个Selector绑定两个地址的文章。但是随着链接数增多,单Selector肯定不能满足对于系统性转载 2014-10-29 10:34:55 · 491 阅读 · 0 评论 -
Java中的泛型类
言简意赅 泛型是什么意思在这就不多说了,而Java中泛型类的定义也比较简单,例如:public class Test{}。这样就定义了一个泛型类Test,在实例化该类时,必须指明泛型T的具体类型,例如:Test t = new Test();,指明泛型T的类型为Object。 但是Java中的泛型方法就比较复杂了。 泛型类,是在实例化类的时候指明泛型原创 2014-09-29 18:55:00 · 547 阅读 · 0 评论 -
Java中的Annotation
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: 1.@Target,原创 2014-09-29 18:51:43 · 481 阅读 · 0 评论 -
Class.forName和ClassLoader.loadClass区别
Java中class是如何加载到JVM中的:1.class加载到JVM中有三个步骤 装载:(loading)找到class对应的字节码文件。 连接:(linking)将对应的字节码文件读入到JVM中。 初始化:(initializing)对class做相应的初始化动作。2.Java中两种加载class到JVM中的方式 2.1:Class.forNam转载 2014-10-13 09:37:19 · 548 阅读 · 0 评论 -
Java中常用的hash函数
public class HashUtils { private static final int crctab[] = { 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e,转载 2014-11-08 23:12:41 · 1337 阅读 · 0 评论 -
JavaIO模型
Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。 Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换。而类 InputStreamReader 和 OutputStrea转载 2014-09-28 18:57:36 · 459 阅读 · 0 评论 -
Java常用开源类库
Jakarta common: Commons LoggingJakarta Commons Logging (JCL)提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于具体的日志实现工具。 它提供给中间件/日志工具开发者一个简单的日志操作抽象,允许程序开发人员使用不同的具体日志实现工具。用户被假定已熟悉某种日志实现工具的更高级别的细节。JC转载 2014-09-28 19:09:30 · 1300 阅读 · 0 评论 -
Java的编解码
在使用java的时候会涉及到编解码的内容。 首先,我们需要了解三个概念: 1. java文件和java class文件的编码格式是utf-8。 2. java class 文件在jvm中运行的时候需要转码成utf-16的编码格式。 3. java中的字符串在内存中的编码格式是unicode。 我们先看在内存中的java对象的编码格式是怎么转化的 我们可以看到Strin原创 2014-09-18 08:31:52 · 564 阅读 · 0 评论 -
JavaIO总结Demo大全(2)
4.几个特殊的输入流类分析LineNumberInputStream主要完成从流中读取数据时,会得到相应的行号,至于什么时候分行、在哪里分行是由改类主动确定的,并不是在原始中有这样一个行号。在输出部分没有对应的部分,我们完全可以自己建立一个LineNumberOutputStream,在最初写入时会有一个基准的行号,以后每次遇到换行时会在下一行添加一个行号,看起来也是可以的。好像更不入原创 2014-09-14 13:09:16 · 615 阅读 · 0 评论 -
JavaIO总结Demo大全(1)
流的概念和作用学习Java IO,不得不提到的就是JavaIO流。流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。IO流的分类根据处理数据类型的不同分为:字符流和字节流根据数据流向不同分为:输入流和输出流字符流和字节流字符原创 2014-09-14 13:09:25 · 1211 阅读 · 0 评论 -
正则表达式
(1)通配符(wildcard):也就是*和?原创 2014-08-27 20:47:24 · 547 阅读 · 0 评论 -
Java property类的用法
在项目中经常用到各种配置文件,有.properties的,也有.xml格式的都可以通过java.utils.Property类进行处理。 1. 读取.properties文件 [c-sharp] view plaincopyFile pFile = new File("test.properties");转载 2014-09-21 09:12:58 · 1624 阅读 · 0 评论 -
java线程池的实现原理
什么是线程池,换一句通俗的话来讲,就是原创 2014-09-09 08:58:28 · 602 阅读 · 0 评论 -
正则表达式例子
1.验证数字:只能输入1个数字 表达式 ^\d$ 描述 匹配一个数字 匹配的例子 0,1,2,3 不匹配的例子 2.只能输入n个数字 表达式 ^\d{n}$ 例如^\d{8}$ 描述 匹配8个数字 匹配的例子 12345678,22223334,12344321 不匹配的例子 3.只能输入至少n个数字 表达式 ^\d{n,}原创 2014-09-20 20:33:31 · 600 阅读 · 0 评论 -
Java线程的一些面试知识
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么转载 2014-08-21 17:05:44 · 500 阅读 · 0 评论