Java
文章平均质量分 70
Code_Seeker
悟已往之不谏,知来者之可追。
展开
-
Thinking In Java----2017.1.23+24 容器/集合
前言:关于容器,http://blog.csdn.net/chenssy/article/details/37909815这个博客的集合系列讲的非常好,本篇博客只包含一些自己感兴趣的。 1.作用有限的方法:Collection.nCopies()返回ListCollection.fill()只对List对象有用,并且只能替换已经存在的元素,而不能添加新的元素。...原创 2017-01-25 15:56:01 · 356 阅读 · 0 评论 -
Thinking In Java----2017.1.25 IO流视频
1.编码方式:String s = "学习ABC";byte[] b = s.getBytes(); for (byte by : b){System.out.print(Integer.toHexString(by&0xff)+" ");} a.)Integer.toHexString(int i) : 以16进制显示。(这里byte自动转换成int了)...原创 2017-01-26 21:50:59 · 1093 阅读 · 1 评论 -
Thinking In Java----2017.1.26 IO流(未完待续)
1.File:a.) FilenameFilter: class DirFilter implements FilenameFilter{private Pattern pattern; public DirFilter(String args) {pattern = Pattern.compile(args);}@Overridepublic ...原创 2017-01-26 21:51:42 · 436 阅读 · 0 评论 -
Thinking In Java----2017.1.26 关于正则表达式的Matcher和Pattern类
1.简介: java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。 它包括两个类:Pattern和Matcher 。Pattern: 一个Pattern是一个正则表达式经编译后的表现模式。 Matcher: 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。首先一个Pattern实例订制了一个所用...原创 2017-01-26 21:53:50 · 298 阅读 · 0 评论 -
(1.28)java.nio.ByteBuffer中flip、rewind、clear方法的区别
转载自:http://www.blogjava.net/sdjxsgb/archive/2013/06/18/400703.html对缓冲区的读写操作首先要知道缓冲区的下限、上限和当前位置。下面这些变量的值对Buffer类中的某些操作有着至关重要的作用: limit:所有对Buffer读写操作都会以limit变量的值作为上限。 position:代表对缓冲区进行读写时,当前游标的位置。转载 2017-01-28 15:36:41 · 852 阅读 · 0 评论 -
Thinking In Java----2017.1.29 IO流(完结版,干货)
1.File:a.) FilenameFilter: class DirFilter implements FilenameFilter{private Pattern pattern; public DirFilter(String args) {pattern = Pattern.compile(args);}@Overridepubl...原创 2017-01-29 21:01:56 · 1200 阅读 · 0 评论 -
fast-fail机制解析
-----原文出自:http://cmsblogs.com/?p=1220,请尊重作者辛勤劳动成果,转载说明出处.-----个人站点:http://cmsblogs在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList:注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证转载 2017-04-12 15:14:41 · 1247 阅读 · 0 评论 -
Java-回调(Callback)
转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273),请尊重他人的辛勤劳动成果,谢谢以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中转载 2017-04-29 19:56:27 · 338 阅读 · 0 评论 -
boolean大小
为什么要问这个问题,首先在Java中定义的八种基本数据类型中,除了其它七种类型都有明确的内存占用字节数外,就boolean类型没有给出具体的占用字节数,因为对虚拟机来说根本就不存在 boolean 这个类型,boolean类型在编译后会使用其他数据类型来表示,那boolean类型究竟占用多少个字节?带着疑问,随便网上一搜,答案五花八门,基本有以下几种:1、1个bit理由是boo原创 2017-05-29 10:07:22 · 941 阅读 · 0 评论 -
Concurrent programming---任务执行
1.无线创建线程的不足: 如果串行的执行任务,那么我们的阻塞情况可能会很严重,并且服务器的资源利用率非常低,cpu将处于空间状态。 所有有的程序员就为每个请求任务分布一个线程,这的确能带来更快的响应性和更高的吞吐率,但是这同样会带来一些问题。 public static void main(String[]args) throws InterruptedException...原创 2017-05-26 18:42:46 · 380 阅读 · 0 评论 -
静态代理与动态代理
静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。 动态代理:在程序运行时,运用反射机制动态创建而程。 直接上代码,代理模式将实际工作类和客户端解耦,通过中间代理进行辅助功能的添加,如下列代码:public interface Account {、、 public void query(); public...原创 2018-06-10 18:12:18 · 247 阅读 · 0 评论 -
让线程的执行变得有序
线程如何有序执行。(1)使用共享变量的方式:代码如下利用原子递增控制线程准入顺序public class OrderedThread1 { static AtomicInteger count = new AtomicInteger(0); public static void main(String[] args) throws InterruptedException {...原创 2018-07-18 12:05:56 · 1319 阅读 · 1 评论 -
检测死锁
Java中当我们的开发涉及到多线程的时候,这个时候就很容易遇到死锁问题,刚开始遇到死锁问题的时候,我们很容易觉得莫名其妙,而且定位问题也很困难。因为涉及到java多线程的时候,有的问题会特别复杂,而且就算我们知道问题出现是因为死锁了,我们也很难弄清楚为什么发生死锁,那么当我们遇到了死锁问题,我们应该如何来检测和查看死锁呢?Java中jdk 给我们提供了很便利的工具,帮助我们定位和分析死锁问...原创 2018-08-09 19:50:07 · 252 阅读 · 0 评论 -
String 对象内存分配(常量池和堆的分配)
在一次面试中,面试官问了一个关于字符串对象创建问题,问题内容如下:场景一:String s1 = "123" + "456";场景二:String s1 = "123";String s2 = s1 + "456"; 在这两个场景下,分别会创建多少个字符串对象?当时其实并没太了解在 JVM 中,字符串对象的内存分配具体策略,只了解在 JVM 中有一个常量池,常量池...原创 2018-08-08 10:49:17 · 5796 阅读 · 4 评论 -
Thinking In Java----2017.1.22 数组
1.由于泛型和包装机制的出现,数组目前硕果仅存的优势就是效率(以前是解决存储基本类型序列的好的选择):数组是一种效率最高的存储和随机访问对象引用序列的方式。 2.数组标识符其实就是一个引用,它指向了在堆中的一个真实的数组对象,这个数组对象保存指向其他对象的引用。 3.Arays.deepToString():它可以将多维数组转换为多个String 4.粗糙数组:数组中...原创 2017-01-23 11:44:23 · 418 阅读 · 0 评论 -
1.22关于new动作的分析(编译时加载类信息,运行时分配内存)
在学习类型信息那个章节的时候,看到了Class.forName()是动态加载类信息,而new是静态加载类信息,在这里,我错误的把new动作理解成了发生在静态编译期。正确的理解:编译期大部分是检查语法,我们需要new动作所需要的类信息,完成new动作就要获得相关的类信息,这些类信息是编译期获得的,即静态加载类信息,然而我们的new动作(即真正分配内存的动作)是发生在运行时的。原创 2017-01-22 12:27:51 · 355 阅读 · 1 评论 -
数据结构--树的遍历(前序)
前序遍历(DLR)前序遍历也叫做先根遍历、先序遍历,可记做根左右。前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。/二叉树游标前序遍历类public class MyBiTreePreIterator extends MyBiTreeIterator{ Stack stack = new原创 2016-04-28 10:52:39 · 791 阅读 · 0 评论 -
数据结构--单链表
具体实现----------------------------------------------------------------------------------------------------------------------package LinkListDemo;public interface List {public int size();原创 2016-04-23 12:39:09 · 358 阅读 · 0 评论 -
学习注意点总结:持续更新~
1.在学习单链表并测试一个小游戏的过程中(击鼓传花),出现了String不能cast to int的问题 ,截图如下 解决办法是:Integer.parseInt();这个方法要仔细研究! 把字符串 转换成 INT,其他的(Double float等)也有类似的方法。一般用在 输入对话框因为输入对话框只认为输入为string当输入整数时需要这个转换。原创 2016-04-23 15:58:38 · 448 阅读 · 0 评论 -
Thinking In Java----2017.1.7 初始化与清理
重载: 1.重载的概念:方法名相同,参数不同(形参不同)2.涉及基本类型的重载:基本类型能从一个“较小”的类型自动提升至“较大”的类型,此过程一旦涉及重载,可能造成混淆。具体:如果传入的实际数据类型小于方法中声明的形式参数类型,那么实际数据类型会自动提升。char型略有不同,如果无法找到恰好接受char型的,那么char型直接提升至int型。如果实际参数类型稍大,则必须进行...原创 2017-01-07 23:18:06 · 385 阅读 · 0 评论 -
Thinking In Java----2017.1.8 访问权限、多态以及一些知识点。
1.Java的数学运算都是在栈中进行的 2.基本类型和基本类型的包装类。基本类型有:byte、short、char、int、long、boolean。基本类型的包装类分别是:Byte、Short、Character、Integer、Long、Boolean。注意区分大小写。二者的区别是:基本类型体现在程序中是普通变量,基本类型的包装类是类,体现在程序中是引用变量。因此二者在内存中的存...原创 2017-01-08 22:38:03 · 309 阅读 · 0 评论 -
Thinking In Java----2017.1.13 内部类
本笔记中有部分选自:http://blog.csdn.net/chenssy/article/details/13170015 (很好的博客,尤其是它的java提高篇,对我的帮助很大) 1.1非普通内部类: (最普通的内部类叫成员内部类,所以一共有4中内部类:1.成员内部类。2.局部内部类。3.匿名内部类。4.static内部类(又名嵌套类)。) a.)一个定义在...原创 2017-01-14 23:54:37 · 258 阅读 · 0 评论 -
Thinking In Java----2017.1.14 集合类/容器类(未完待续)
1.在Java SE5之前,有1个很大的问题就是编译器允许向容器中插入不正确的类型,ArrayList里面存放的是Object,里面可以存放Apple,也可以存放Orange。并且在取出元素的时候,必须强制转型,因为你取出来的都是Object类型。错误只能在运行时发现 2.在Java SE5之后,我们可以使用泛型进行预定义,如果插入的类型不对,编译器就能发现。并且在取出元素...原创 2017-01-14 23:55:38 · 372 阅读 · 0 评论 -
Thinking In Java----2017.1.12 多态与接口(完结版)
文章有部分内容选自:http://blog.csdn.net/chenssy/article/details/12786385,感谢博主。多态: 1.private方法被自动认定为是final方法,并且对子类是屏蔽的。 2.编译器强制每个子类(都继承自Object)必须调用构造器的原因:可以确保我们想要使用的成员对象都得到正确的初始化,在下一层子类的时候可以正确调用...原创 2017-01-12 22:34:53 · 675 阅读 · 0 评论 -
1.13---继承的3个问题
谨慎继承 上面讲了继承所带来的诸多好处,那我们是不是就可以大肆地使用继承呢?送你一句话:慎用继承。 首先我们需要明确,继承存在如下缺陷: 1、父类变,子类就必须变。 2、继承破坏了封装,对于父类而言,它的实现细节对与子类来说都是透明的。 3、继承是一种强耦合关系。原创 2017-01-13 10:06:00 · 256 阅读 · 0 评论 -
Thinking In Java----2017.1.16 字符串类(无正则表达式)
1.String对象不变:String对象是不变的(只读性,指向它的任何引用都不会改变它的值,它也不会对其他引用有什么影响),String类中的每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容。最初的String对象没有任何变化。 2.重载”+”和StringBuilder:我们可以联想一种情况:String a...原创 2017-01-18 10:38:12 · 467 阅读 · 0 评论 -
Thinking In Java----2017.1.18 类型信息RTTI(未完待续)
1.类对象:类是程序的一部分,每个类都有一个Class对象,每当编写并且编译了一个新类的时候,就会产生一个Class对象,为了生成这个类对象,运行这个程序的JVM将使用“类加载器”系统。2.所有的类都是在对其第一次使用的时候动态加载到JVM的。当程序创建第一个对类的静态成员的引用的时候,就会加载类。所以构造器也是static方法,即使在构造器之间没有static关键字。因此,使用new操作...原创 2017-01-19 21:53:56 · 280 阅读 · 0 评论 -
Thinking In Java----2017.1.21动态代理
关于动态代理设计模式可以看以下博客:http://blog.csdn.net/wangyongxia921/article/details/46124197http://blog.csdn.net/wangyongxia921/article/details/46125379 以下是自己的理解:代理为你实际的操作对象添加额外的操作,它作为一个中间对象,在任何时刻,当你想把“额外...原创 2017-01-22 10:14:20 · 708 阅读 · 0 评论 -
Thinking In Java----2017.1.20 类型信息+反射(完结)
前序:运行时类型识别(RTTI, Run-Time Type Identification,在运行时识别一个对象的类型)是Java中非常有用的机制,在Java运行时,RTTI维护类的相关信息。多态(polymorphism)是基于RTTI实现的。RTTI的功能主要是由Class类实现的。 1.类对象:类是程序的一部分,每个类都有一个Class对象,每当编写并且编译了一个...原创 2017-01-21 11:03:32 · 512 阅读 · 0 评论 -
(Java实现)获取文件目录下的所有文件名,包括子目录
public class Main { public static void main(String[] args) { String path = "D:/"; File f = new File(path); Main.getFile(f); } public static void getFile(File file){ if(file != ...原创 2018-08-08 15:50:53 · 9423 阅读 · 0 评论