Java
文章平均质量分 73
张庚
这个东西的原理是什么呢?
展开
-
注解
注解(Annotation)是什么? An annotation is a form of metadata, that can be added to Java source code. Classes, methods, variables, parameters and packages may be annotated. Annotations have no direct eff原创 2016-02-19 14:52:57 · 883 阅读 · 0 评论 -
Java I/O 技术(八)—— 操作文件属性的对象:File
之前,我们所学的东西—— 流!都是用来操作设备上的数据,它有着自身的局限性,流不能操作数据所属的文件的属性—— 诸如:修改时间,创建时间…………等信息。 【File类】 专门用于描述系统中文件或者文件夹的对象。可以用于操作文件或文件夹的属性信息。File对象可以作为参数传递给流的构造函数。 对于File类的学习:【1】获取文件信息。原创 2013-04-27 10:51:37 · 7287 阅读 · 0 评论 -
Java I/O 技术(三)—— 操作 字符流 的对象
字符流的抽象基类是:Writer 和 Reader !用于操作字符流的子类对象有:1. FileReader 和 FileWriter . 2. 功能对象:BufferedReader 和 BufferedWriter 他们分别对应于:FileReader 和 FileWriter ,用来达到对FileReader 和 FileWriter 的高效操作,具体见下文原创 2013-04-27 10:03:24 · 3430 阅读 · 0 评论 -
Java I/O 技术(二)—— I/O体系
在学习IO体系的时候,我们可以遵循这样的规律: 看父类的共性功能,用子类的对象。而且,IO体系的好处在于: 每个子类的后缀名都是所属体系的父类的名称。很容易区分所属的体系。而且:每个子类前缀名都是该子类对象的功能体现。Java IO体系: 在Java IO 包中为字符流和字节流提供了相应的抽象基类: |------字原创 2013-04-27 09:41:10 · 1292 阅读 · 0 评论 -
Java I/O 技术(一)—— 概述
首先我们必须得明白,Java中IO技术的出现是为了解决什么问题? 在这之前,我们与程序的交互方式都是通过在控制台输入,或在程序中写死了数据,来确保程序运行时所需要的数据的有效性。 然而,在现实中,并非如此。 例如,我们需要对硬盘上的一个文件进行操作(文本文件 or 音频 or 视频文件) 或者是将 程序运算后所得到的结果保存到硬盘上或者是 从网络上原创 2013-04-27 09:29:37 · 1522 阅读 · 0 评论 -
Java多线程总结
以下是Java多线程技术博文的目录:《Java多线程技术初识——1.概述》《Java多线程技术初识——2. 线程的创建》《Java多线程技术初识——3.线程的安全问题》《Java多线程技术初识——4.多线程安全问题的解决》《Java多线程技术初识——5.死锁》《Java多线程技术初识——6.单例模式在多线程中的应用》《Java多线程技术初识——7.线程的生命周期,优先级原创 2013-04-14 23:46:17 · 1862 阅读 · 1 评论 -
Java多线程技术初识——9,等待唤醒机制(二)
这篇主要讲解,JDK1.5以后,对多线程技术的改进。那么,为什么要对之前的技术进行改进呢,在上篇中的多生产者,多消费者例子中,当有一个线程在执行时,其他的线程在申请对锁的拥有权是,会不断的进行判断,这样会降低降低程序的性能。为此,JDK 1.5 以后,对多线程技术做了改进。JDK1.5后出现的新的接口和类:Lock:比同步函数和同步代码块要好一些。同步函数还是同步代码块所做的都是隐式的锁操作。原创 2013-04-15 17:12:46 · 1619 阅读 · 0 评论 -
Java多线程技术初识——8 ,等待唤醒机制(一)
在开始讲解等待唤醒机制之前,有必要搞清一个概念——线程之间的通信:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。通过一定的手段使各个线程能有效的利用资源。而这种手段即—— 等待唤醒机制。等待唤醒机制所涉及到的方法:wait() :等待,将正在执行的线程释放其执行资格 和 执行权,并存储到线程池中。notify():唤醒,唤醒线程池中被wait(原创 2013-04-15 16:56:34 · 6509 阅读 · 0 评论 -
Java多线程技术初识——2. 线程的创建
下面通过具体的示例来进行多线程的讲解: 现有 100张火车票,分别有由 1~4 窗口来卖。 Java中提供了两种创建多线程的方式:先用第一种方式来完成售票动作:方式一:继承Thread类,覆盖run方法;步骤:1. 定义类覆盖Thread类;2. 覆盖Thread类中的run方法;3. 创建Thread类的子类对象创建线程原创 2013-04-14 22:32:57 · 1158 阅读 · 0 评论 -
Java多线程技术初识——1. 概述
话还得从头说起——进程简介:在未配置OS的系统中,程序的执行方式是顺序执行,即必须在一个程序执行完成后,才允许另一个程序的执行,这种执行方式的特点在于:程序必须按照顺序来执行!进入多道程序环境下,则允许多个程序并发的执行,但并发执行的特点在于:间断性,同时还会失去封闭性,而最大的弊端则在于 程序的执行结果,不可再现。为了,保证程序的并发执行,引入了进程的概念!进程之间,通过同步,互斥等一系原创 2013-04-14 22:12:56 · 1433 阅读 · 0 评论 -
Java多线程技术初识——7. 线程的生命周期,优先级,调度
早些日子以前接触了,Java的多线程技术!那时候的学习,主要是在网上下载,各种教学视频,跟着视频学习,后来,发现,跟着视频学习,有个瓶颈——知识并不是很系统!于是,就决定买书,读书来学习,用的是——《Java How To Program》。感觉,这本书,特别不错!Java的多线程技术——使Java语言具有比C 和 C++ 语言更加强大的功能,C和C++ 均为单线程语言【C和C++实现多线程原创 2013-04-08 22:09:04 · 3138 阅读 · 0 评论 -
Java多线程技术初识——5. 死锁
死锁:指多个进程or 线程在运行过程中因争夺资源而造成的一种僵局,当线程 处于 这种僵态是,若无外力作用,他们将无法再向前推进。最常见的死锁情况,同步的嵌套:同步中还有同步,两个同步用的不是一个锁。 我们应当,尽量避免同步嵌套的情况。如下所示:public class Clock { public static Clock locka = new Clock();原创 2013-04-14 23:30:56 · 1473 阅读 · 0 评论 -
Java I/O 技术(九)—— Properties
接下来将学习的对象是 Map中HashMap的子类,但它跟文件的读取密切相关,因此放到这里讲解: 那么他到底有啥特点呢:Properties: *1, Map接口中Hashtable的子类。 *2, 该类上没有泛型定义,因为它的键值都是固定的字符串类型。 *3, 因为存储都是字符串数据,通常都作为属性信息存在。 *4, 该原创 2013-04-27 10:57:23 · 1432 阅读 · 0 评论 -
Java I/O 流 总结
Java I/O 技术(一)—— 概述Java I/O 技术(二)—— I/O体系Java I/O 技术(三)—— 操作 字符流 的对象Java I/O 技术(四)—— 装饰设计模式及应用Java I/O 技术(五)—— 操作 字节流 的对象Java I/O 技术(六)—— 键盘录入 和 转换流Java I/O 技术(七)—— 流操作规律总结Java I/O 技术(八)原创 2013-04-27 11:16:50 · 1626 阅读 · 1 评论 -
在Android中使用ExecutorService、Executors、Feature
今天在读程序源码,源码中有一段这样的程序:private final ExecutorService executorService = Executors .newSingleThreadExecutor();final Future<?> future = executorService.submit(new Runnable() { .原创 2015-05-28 10:43:41 · 2165 阅读 · 0 评论 -
一个有用的正则表达式判定工具类
package com.zhanggeng.contact.tools;/** * RegexTool is used to regex the string ,such as : phone , qq , password , email . * * @author ZHANGGeng * @version v1.0.1 * @since JDK5.0 * */publi原创 2014-04-24 11:19:21 · 1851 阅读 · 0 评论 -
用javadoc命令,生成api帮助文档
昨天下午开始原创 2014-05-10 10:55:50 · 6214 阅读 · 0 评论 -
Java I/O 技术(四)—— 装饰设计模式及应用 初识
任何一种技术的出现,都是要解决已有的问题。那么装饰设计模式的提出,又是为了解决什么问题呢?给已有的对象提供增强额外的功能。还不用对原有对象进行修改。比继承更为灵活,避免了继承的臃肿。装饰类 和 被装饰类都所属于同一个体系。下面用一个具体实例来说明: Writer |--TextWriter |--MediaWri原创 2013-04-27 10:10:51 · 1514 阅读 · 0 评论 -
Java多线程技术初识——6. 单例模式在多线程中应用
持续整理中……【单例设计模式:】——该模式是用于解决什么问题? 解决:保证了一个类在内存中只能有一个对象。 比如:多程序访问同一个配置文件,希望多程序操作的都是同一个配置文件 中的数据。那么就需要保证该配置文件对象的唯一性。【思路】 怎样才能保证对象是唯一的呢? 1.其他程序随时原创 2012-07-21 23:30:07 · 1746 阅读 · 0 评论 -
集合框架(一)——概述
集合框架构成图:大纲:1. 数组容器和集合的区别;2. 集合框架的由来;3. Collection中的共性方法4. 迭代器,及其原理,以及出现的好处5. 集合中两个注意的小细节6. Collection的两个子集List Set 简介及其子类7. 集合的技巧掌握——————原创 2012-09-16 20:12:42 · 4640 阅读 · 0 评论 -
Java I/O 技术(十一)—— I/O 功能流对象(二)
接下里我们将学习,IO包中,用于操作对象的类——ObjectInputStream 和 ObjectOutputStream。 ObjectOutputStream类,可以将Java对象的基本数据类型和图形写入 OutputStream ,在OutputStream中关联文件后,这些对象将会实现,持久化的存储。 ObjectInputStream类,可以读取 本地文件中,存储的对象原创 2013-04-27 11:06:38 · 1326 阅读 · 0 评论 -
Java I/O 技术(六)—— 键盘录入 和 转换流
至此,我们已经介绍完了字符流和字节流。但是,我们会注意到这样一个问题,程序中所需要的数据,都是事先已经定义好的,那么程序能否处理,由我们输入的数据呢?即读取键盘的数据。答案是肯定的,那么又该如何读取呢,是否有相应的对象?请看下面示例:系统为我们提供了 System.in 来进行 数据的输入。接下里要做的就是,读取由键盘输入的数据。import java.io.IOException原创 2013-04-27 10:30:31 · 2541 阅读 · 1 评论 -
Java I/O 技术(五)—— 操作 字节流 的对象
字符流处理的数据都是文字,需要将指定的数据,查指定的编码表。而字节流处理的数据不一定都是文字数据,所以是不需要指定查表的。直接在操作文件数据的时候,就将具体的字节数据写入到目的。字节流常用的对象:抽象基类:InputStream 和 OutputStream InputStream |-------FileInputStream|-------BufferedInputStr原创 2013-04-27 10:20:13 · 2582 阅读 · 0 评论 -
Java I/O 技术(十)—— I/O 功能流对象(一)
至此IO体系中的大半壁江山,已经学习完毕,接下来,主要学习的是:IO 体系中的功能流对象! 1. 打印流PrintWriter, PrintStream可以直接操作输入流 和 文件。 PrintStream: 1.为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。2.提供了一系列的打印功能,可以打印任何数据。3.它的特有方法不抛出 异常。原创 2013-04-27 11:02:38 · 1128 阅读 · 0 评论 -
Java I/O 技术(七)—— 流操作规律总结
流的操作规律: 在进行数据操作时,IO包中提供了N多对象不同功能来操作设备上的数据。在实际开发时,到底用哪个流对象来完成数据处理呢?这是我们最为苦恼的事情。如何明确具体用哪个流对象呢? 严格按照如下四个规律就没问题了: 规律就是四个明确? 1,明确源和目的。 源:InputStream Reader 一定是被读取的。 目的:Out原创 2013-04-27 10:36:38 · 1524 阅读 · 1 评论 -
Java多线程技术初识——4. 多线程安全问题的解决
多线程安全问题的解决方案:首先我们得明白两个概念:同步 和 互斥;同步——这是线程 or 进程之间的 合作关系。对多个线程在执行次序上进行协调,以使并发的各个线程能更好的利共享资源,相互合作。多个线程之间,一个线程需要等待另一个线程执行完毕后才能继续执行。 如:下文中,当一个线程拿到锁没有释放之前另一个线程不能执行,只能是等待上个线程 释放了锁之后才能执行。 互斥——这是线程原创 2013-04-14 23:20:34 · 4340 阅读 · 1 评论 -
Java多线程技术初识——3. 线程安全问题
多线程的安全问题表现:先看如下代码:package chapter1502;public class Ticket1 implements Runnable{ private int tickets = 100; public void run(){ while(true){ if(tickets>0){ try { Thread.原创 2013-04-14 22:49:35 · 1400 阅读 · 0 评论 -
内部类
内部类: 定义: 类可以在其他类中定义。这样的类可以是完整的类定义或者是 “匿名内部类”定义。用途: 1. 主要用来进行GUI事件处理。2. 在一些抽象数据类型的实现就可以用内部类来表示队列中当前存储每个数据的对象。特点:1. 内部类对象与创建它的外部类对象之间有特殊的关系。内部类对象可以直接访问外部类对象的所有实例变量和方法。2. 内部类也可以原创 2013-04-05 21:12:43 · 855 阅读 · 0 评论 -
函数调用栈——再探
先看一下Java对内存的划分:【Java的内存划分:】 【1.寄存器;】 cpu涉及的区域; 【2.本地方法区;】和系统相关的代码存储区域;???转成C 【3.栈内存】存储的都是局部变量。变量运算区一结束,就释放。 局部变量:在方法上的参数,方法内的变量,语句中原创 2012-07-10 08:29:55 · 782 阅读 · 0 评论 -
String && StringBuffer && StringBuilder
【String 类】【特点:】1. Java语言中用于描述最常见的字符串数据的对象。2. 字符串数据都是一个对象。3. 字符串数据一旦初始化就不可以被该变了。 但可以改变变量的指向。 双引号表示的都是字符串常量。4. 字符串对象(字符串常量)都存储在常量池中。字符串常量池原创 2012-09-11 23:03:41 · 918 阅读 · 0 评论 -
面向对象——之前奏
大纲:1. 面向对象与面向过程的区别2. 如何理解面向对象;3. 面向对象的具体分析原则:例题4个4. 面向对象的编程单位是什么,在定义类时所涉及到的元素有那两个。5. 类与对象的关系6. 成员变量与局部变量的区别。7. 匿名对象——————————————————————————【面向对象与面向过原创 2012-07-21 14:44:15 · 1104 阅读 · 0 评论 -
JDK1.5 后的特性总结……
持续整理中……【无论什么东西升级的目的无非 以下几点:】1.简化书写;2.提高效率;3.提高安全性;新特性一: StringBuilder ——jdk1.5版本出现了一个新的字符串缓冲区。【JDK1.5新出来的】StringBuilder含义:——新的字符串缓冲区;功能和StringBuffer一模一样。可变字符序原创 2012-07-27 19:40:05 · 1951 阅读 · 0 评论 -
泛型
泛型——JdK1.5以后出现的技术 ——安全机制!泛型的由来:集合中可以存储任意类型的对象,但是在取出时,如果要使用具体对象的特有方法时,需要进行向下转型,如果存储的对象类型不一致,在转型过程中就会出现ClassCastException异常,这样就给程序带来了不安全性。然而,这种不安全性会发生在运行时期,用户无法解决。【代码体现:】import java.util.Arr原创 2012-07-31 07:24:02 · 1335 阅读 · 0 评论 -
面向对象——三大特性之——继承(一)
将对象中的共性内容不断地向上抽取,就形成了关系,就有了关系,就有了继承,有了子父类。 所谓的: 超类,基类——父类;【继承的好处】提高了代码的复用性,让类与类之间产生了关系。 单继承:一个类只能有一个父类。一个儿子只能有一个父亲。多继承:一个类可以有多个父类。一个儿子有多个父亲。(在Java中不允许,但用接口可以改良!)【继承的特点】——Java中只能单继承,原创 2012-07-21 15:33:41 · 1883 阅读 · 0 评论 -
异常处理机制
小感悟:在学习的时候,难免会碰到各种问题,我可以用面向对象的思维来理解这个状况:碰到问题,我们能解决吗?能解决,就try ……catch ,不能解决,就找对象(面向对象),然后——throw ,哈哈!—————————————————————————————————————————————————————————————————————【异常】 ——简单理解就是:不正常。这些原创 2012-08-02 17:40:51 · 937 阅读 · 0 评论 -
查表法进行——进制转换
我就用绝招试试手——1. 什么是查表法:通过容器将对应的关系进行存储。通过运算得出相应关系中的其中一方的结果,再通过这个结果去容器中找对应的另一个内容。 可以这样理解:在库房里有六个箱子,对每箱子都进行了编号,当我们要找某个箱子时,可以根据对应的编号到库房里去找相应的箱子!2. 查表法的特点——a) 有对应的关系——方便查询;b)原创 2012-07-10 12:12:18 · 4685 阅读 · 0 评论 -
局部代码块——构造代码块——静态代码块 (In Java)
局部代码块:作用:控制变量的生命周期;在程序中,当我们已经使用完 x 后,并且在接下来的代码中,不会再用到x,那么就没必要让x 在内存中占用空间了,这用情况下,可以使用 局部代码块,将x及其所设计到的区域封装为局部代码块,他们在程序执行中顺序不变,只是在执行完成后消失。表现形式,以代码体现如下:class TestDemo{ public static void main(原创 2012-07-15 23:04:41 · 10452 阅读 · 2 评论 -
基本数据类型包装类
【基本数据类型对象包装类】想要对基本类型数据进行更多的操作,最方便的方式就是将其封装成对象。为啥呢?因为在对象描述中就可以定义更多的属性和行为对该基本数据类型进行操作。【八种基本数据类型的包装类】byte ——Byteshort ——Shortint ——Integerlong-----Longfloat-----Floatdouble----Dou原创 2012-09-13 15:55:45 · 24565 阅读 · 2 评论 -
集合框架(二)——Collection 的两个子集Set 和 List ——————总述!
Collection |--List:列表。 特点: 1,有序(存储元素的顺序和取出元素的顺序一致) 2,该集合中的元素都有索引,所以可以通过索引(角标)来访问元素。 3,它可以存储重复元素。 常见子类对象:记住:具体的子类对象原创 2012-09-16 20:26:36 · 1860 阅读 · 0 评论 -
面向对象——三大特性之——继承(二)
【抽象类】当描述事物时,没有足够的信息对该事物进行描述,那么该描述对应的类就是一个抽象类。 狼 ,狗 ——犬科; 【抽象类的特点:】 1. 没有方法体的方法是抽象方法,一般定义在抽象类中。 2. 抽象类和抽象方法必须用abstract关键字所修饰。 3. 抽象类不可以被实例化。为啥?(逆向思考)因为调用抽象方法没有意义,啥也没有,调用原创 2012-07-21 15:51:03 · 1467 阅读 · 0 评论