
Java
文章平均质量分 82
leelit
这个作者很懒,什么都没留下…
展开
-
Java:RTTI与反射机制的一些概念
以下内容大部分取于《Java编程思想第四版》RTTI简介RTTI(Run-Time Type Information),运行时类型信息使得你可以在程序运行时发现和使用类型信息。主要有两种方式:传统的RTTI:假定我们在编译时已经知道了所有的类型;反射机制:允许我们在运行时发现和使用类的信息。RTTI的最基本使用形式,所有的类型转换都是在运行时能正确性检查的。Class对象Class对象就是用原创 2015-04-27 20:14:59 · 841 阅读 · 0 评论 -
Java:设计模式六大原则
在面向对象设计领域,软件开发人员在开发过程中总结了不少的经验,许多经验在现代软件开发过程中已经被认为是原则来被遵守。单一职责原则单一职责原则(SRP:Single responsibility principle)又称单一功能原则,它规定一个类应该只有一个发生变化的原因。单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。 如果一个类承担的职责过多,就等于把这些职责耦合在一起了。一个职责的原创 2015-05-11 21:22:06 · 823 阅读 · 0 评论 -
Java:内存相关认识
JVM管理的内存程序计数器(PC):每条线程都有独立的PCJVM栈(Java栈):描述的是Java方法执行的内存模型,每个方法被执行的时候会创建一个栈帧用于存储局部变量表、操作栈、动态链接、方法出口等信息,也是线程私有的。本地方法栈:与Native方法相关Java堆:线程共享的内存地址空间,用于存放对象实例,也是GC管理的主要区域。直接内存:与Native堆相关方法区:存储已被JVM加载原创 2015-06-01 13:04:20 · 970 阅读 · 0 评论 -
Java:线程池基础
基本认识以下摘自百度百科 线程池的概念:线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。 线程池的作用:在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一原创 2015-05-24 17:32:11 · 823 阅读 · 0 评论 -
Java:IO系统与装饰模式
Java的IO原创 2014-10-13 10:27:18 · 939 阅读 · 0 评论 -
Java:断点续传
简介我们下载文件或者其他内容时,常常都是通过Http协议直接请求整个文件。所以常见的方法是直接判断服务器返回的状态码,如果返回200,就开始写。所谓断点续传,就是指不请求整个文件,而是请求部分文件,如果服务器支持分段请求,则返回相应的分段内容,否则返回整个文件。我们可以通过断点续传来实现多条线程来下载同一个文件,加快速度;也可以通过断点续传实现暂停/恢复下载的功能,试想,如果没有断点请求,每次都是请原创 2015-12-22 18:45:30 · 854 阅读 · 0 评论 -
Java:字符乱码问题
Java字符集的问题,有时候真的会让人很头疼,所以有必要整理一下。我们可以通过调用java.nio.charset.Charset.defaultCharset();获得JVM的默认字符集。默认的字符集依赖于你的系统,通常中文Windows系统都是以GBK字符集进行编码/解码。1、用记事本新建一个d:\charset.txt文件,内容为abc你好,这个文件默认编码为ANSI,这原创 2016-01-13 13:36:27 · 2116 阅读 · 0 评论 -
Effective Java读书笔记(二):方法、通用程序设计
方法0. 方法太多会使类难以学习不要过于追求提供便利的方法,每个方法都应该尽其所能,只有当一项操作被经常用到的时候,才考虑为它提供快捷方式。1. 谨慎设计方法签名谨慎地选择方法的名称,一般使用约定俗成的方式。避免过长的参数列表,可以通过1)分解方法、2)创建辅助类(一般为静态成员类)用于保存参数、3)Builder模式,这三种方法来缩短参数列表。对于参数类型,优先使用接口而不是类。如果可能涉原创 2016-03-23 15:20:30 · 704 阅读 · 1 评论 -
Java:GOF的23种设计模式(下)
三:构造型模式(1)建造者模式也叫生成器模式(Builder)1.建造者模式的意图是把构造对象实例的代码逻辑移到要实例化的类的外部2.生成器模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。3.生成器模式是在当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时适用的模式。①Product产品类,由多个部件组成import j原创 2014-10-20 20:44:36 · 1738 阅读 · 0 评论 -
Effective Java读书笔记(一):类、接口、对象
前言“可能有人认为我不需要任何Java方面的书籍,但是我需要这本” - James GoslingJava领域有几本被奉为圣经的书籍,其中(我认为)最著名的两本是《Thinking in Java》以及《Effective Java》。如果说Java编程思想教会我们Java这门语言,那么Effective Java则教会我们如何写出更好的Java语言程序。这本书对于API开发程序员更为对口,但是对于原创 2016-03-14 00:12:18 · 739 阅读 · 0 评论 -
Effective Java读书笔记(三):泛型、枚举、注解、异常
来到读书笔记的第三篇了,这一次的主题是讲泛型、枚举、注解这三个Java1.5引入的语言特性。关于泛型,很久以前我写过一篇初识的文章,http://blog.youkuaiyun.com/leelit/article/details/39504873,里面的一些基础知识现在看起来依然能起到复习作用。而另外两个特性的基础知识这里不再展开,因为Effective Java这本书讲的就是一些编程技巧或者说良好的习惯。然原创 2016-04-02 20:02:56 · 1104 阅读 · 0 评论 -
Java:sleep、wait、notify、notifyAll
记得以前初学Java时老是搞不清这几个方法,现在稍微记录一下。概述sleep是Thread这个类的一个静态方法,调用时则当前线程睡眠多长时间; wait是Object类的一个方法,某个对象调用wait方法时,当前线程等待多长时间。某个对象调用wait/notify/notifyAll方法前,必须获得这个对象的锁,否则会抛出java.lang.IllegalMonitorStateException原创 2015-11-07 11:16:16 · 805 阅读 · 0 评论 -
Java:interrupt()、interrupted()、isInterrupted()
记得以前初学Java时老是搞不清这几个方法,现在稍微记录一下。 这算是 Java:sleep、wait、notify、notifyAll这篇文章的姊妹篇吧^_^前言一条线程进入阻塞的状态,可能有几个比较常见原因:该线程调用了Thread.sleep()方法该线程,某个对象调用了wait()方法该线程正在等待I/O该线程调用其他线程正占有锁的同步方法/块前两者和后两者有个重要的区别,前两者原创 2016-05-18 00:15:27 · 1033 阅读 · 0 评论 -
Java:正则表达式基础
正则表达式是一种匹配和处理字符串的文本处理工具,Java主要通过java.util.regex包中的Pattern、Matcher和PatternSyntaxException三个类来实现正则表达式。常用语法 字符 含义 x 字符x \ 将下一字符标记为特殊字符、文本原创 2015-04-20 16:21:27 · 798 阅读 · 0 评论 -
Java:线程同步的一些概念
from:effective java & thinking in java互斥(mutex):当一个对象被一个线程修改时,可以阻止另外一个线程观察到对象内部不一致的状态。对象被创建的时候就处于一致的状态,当有方法访问它的时候,它就被锁定了。同步:不仅可以阻止一个线程看到对象处于不一致的状态(互斥),它还可以保证进入同步方法或者同步代码块的每个线程,都看到由同一个锁保护的之前的原创 2014-12-30 12:45:40 · 905 阅读 · 0 评论 -
Java:equals和hashCode的理解
我们一般使用equals都是为了比较对象的内容,而Object里面的equals方法却是比较对象的引用,如下:public boolean equals(Object obj) { return (this == obj); }所以当我们想要比较的是对象的内容时,需要重写equals方法,假设User类中有String name , int age 两个字段,用eclips原创 2014-12-06 12:30:17 · 1119 阅读 · 0 评论 -
Java:泛型
没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。实例一:泛型初识①定义一个St原创 2014-09-23 21:39:49 · 929 阅读 · 0 评论 -
Java:Socket通信
Socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。套接字之间的原创 2014-10-24 08:49:25 · 1185 阅读 · 0 评论 -
Java:多态
学习Java有一段时间了,对于多态一直不是半知不解,所以写一篇个人笔记吧,希望有更深刻的记忆。实例一:未运用多态的的例子①新建一个Father类public class Father { public String func() { return "Father方法"; }}②新建三个Son类,继承Father类,重写方法public class Son1 extends原创 2014-10-11 20:03:01 · 684 阅读 · 0 评论 -
Java:GOF的23种设计模式(上)
此次学习主要是参考liang原创 2014-10-20 14:27:49 · 2997 阅读 · 0 评论 -
Effective Java读书笔记(四):并发
前言以前当我在网络上看到爆发语言大战时,也会在一旁“看戏”,这个语言怎样怎样,那个语言怎样怎样,感觉挺有趣的,我对其中的褒贬也会半信半疑。后来我慢慢对这些言论不再感兴趣,基本上看到就会跳过,除非是对多门语言都非常熟悉的人发表的,比如说某知乎大v曾经写的Java sucks,C# rocks文章,这样的文章才更值得一读。这样的想法转变是因为,一般而言当我对任何东西更加熟悉时,我才会更加知道原来自己不懂原创 2016-05-22 17:33:56 · 920 阅读 · 0 评论