JAVA
文章平均质量分 55
一叶丿清风
纸上得来终觉浅,绝知此事要躬行...
展开
-
对象序列化(Object Serialization)
程序运行时可能有需要保存的数据,对于基本数据类型如int、float、char等,可以简单的保存到文件中,程序下次启动时,可以读取文件中的数据初始化程序。但是对于复杂的对象类型,如果需要永久保存,使用上述方法就会复杂一些,需要把对象中不同的属性分解为基本数据类型,然后分别保存到文件中。当程序再次运行时,需要建立新的对象,然后从文件中读取与对象有关的所有数据,再使用这些数据分别为对象的每个属性进行初始原创 2017-08-08 20:31:54 · 2150 阅读 · 0 评论 -
线程的优先级
在操作系统中,线程可以划分优先级,优先级高的线程得到的CPU资源较多,也就是CPU优先执行优先级较高的线程对象中的任务。 设置线程优先级有助于帮助“线程规划器”确定在下一次选择哪一个线程来优先执行。 设置线程优先级使用setPriority()方法,此方法在JDK的源码如下:public final void setPriority(int newPriority) { Thre原创 2017-08-05 09:37:15 · 337 阅读 · 0 评论 -
Java--05
数组 1.数组是一种引用类型 2.数组是一种简单的数据结构,线性的结构 3.数组是一个容器,可以用来存储其他元素,数组可以存储任意数据类型的元素 4.数组分为:一维数组、二维数组和多维数组 5.数组中存储的元素类型是统一的 6.数组长度不可改变,数组一旦创建长度是固定的,不可变的 7.数组的查找和修改元素效率较高,增删效率较低,具原创 2017-09-03 19:43:23 · 332 阅读 · 0 评论 -
如何正确的更好的停止一个线程?
前面提到过三种停止线程的方式,这三种方式不是被废弃就是可能造成return污染,最后虽然建议用抛异常法,但抛异常法依靠的是异常处理机制,下面介绍一种更常用的的停止线程的方法:通过在实现Runnable接口的类里面(或者是在继承Thread类的类里面)定义一个boolean类型的变量(标记),然后对变量(标记)进行判断处理,从而达到停止线程的目的。 下面是简单示例:/* * 如何正常终止一个线程原创 2017-08-15 20:11:28 · 1472 阅读 · 0 评论 -
Java笔记--06
常用类详解 String类 1.字符串一旦创建不可再改变。”abc”字符串对象一旦创建,不可再改变成”abcd” 2.提升字符串的访问效率:在程序中使用了”缓存”技术。 所以在java中所有使用”“括起来的字符串都会在”字符串常量池”中创建一份,字符串常量池在方法区中被存储。 3.在程序执行过程中,如果程序用到某个字符串,那么程序会先去字符串常量池中搜索该字原创 2017-09-08 16:43:09 · 187 阅读 · 0 评论 -
随机数Random
Math.random()产生[0.0,1.0)不包括1.0的double随机数。 下列代码产生[1,10)的随机数:1+Math.random()*10; 产生[m,n)的随机数代码:m+(n-m)*Math.random(); Java系统还提供了一个更强大的Random类,Math.random函数内部实现就是使用的Random类。Random类中实现的随机算法是伪随机,也就是有规则的随原创 2017-09-08 19:32:11 · 470 阅读 · 0 评论 -
Java笔记--01
1.Java中常用windows命令 切到d盘 d: cd后面跟路径名(可以是绝对路径或相对路径) 绝对路径:带盘符的命令 例如:E:\BaiduNetdiskDownload\Cache 相对路径:不带盘符,相对的是当前路径,只有当前目录下有该文件,才能直接cd 用dir可以查看当前目录下的所有文件 cd.. 回到上一级 cd. 当前目录 exit 退出 ipconfig原创 2017-08-31 16:24:39 · 169 阅读 · 0 评论 -
Java笔记--02
java语言中的字面值 1.什么是字面值? 一眼看上去就知道是多少的数据,就是字面值 2.字面值的本质 字面值是有数据类型的: 整形 100 浮点型 3.14 布尔型 true/false 字符型 ‘中’ 字符串型 “ABC” 字面值就是内存中的一块空间,这块空间有类型,有值。 缺点:只有字面值内存无法得到重复利用。Jav原创 2017-08-31 16:45:48 · 191 阅读 · 0 评论 -
Java笔记--07
Collection集合的常用方法 boolean add(Object element);向集合中添加元素 int size();获取集合中元素的个数 void clear();清空集合 boolean contains(Object o);判断集合中是否包含某个元素 boolean remove(Object o);删除集合中某个元素原创 2017-09-11 07:40:24 · 227 阅读 · 0 评论 -
Java笔记--03
面向过程与面向对象的区别?(盖饭、蛋炒饭) 采用面向过程必须了解整个过程,每个步骤都有因果关系,每个因果关系都构成了一个步骤,多个步骤就构成了一个系统,因为存在因果关系每个步骤很难分离,非常紧密,当任何一个步骤出现问题,将会影响到所有的系统。高耦合:代码和代码之间的联系程度高。 面向对象会将现实世界分割成不同的单元(对象),实现各个对象,如果完成某个功能,只需要将各个对象协作起来就可以。原创 2017-09-02 20:24:24 · 523 阅读 · 0 评论 -
Java笔记--04
1.异常是什么? 第一、异常模拟的是现实世界中”不正常的”事件 第二、java中采用”类”来模拟异常 第三、异常类也是可以创建对象的 NullPointException e=0x1234; e是引用,e中保存的内存地址指向堆中的”对象” 这个对象一定是NullPointException类型 这个对象就表示真实存在的异常事件原创 2017-09-02 20:27:07 · 126 阅读 · 0 评论 -
Java笔记--09
以下是SUN提供的反射机制中的类 java.lang.Class; java.lang.reflect.Construct; java.lang.reflect.Filed; java.lang.reflect.Modifier; 反射机制的作用: 1.反编译:.class–>.java 2.通过反射机制访问java类的属性,方法,构造方法等 获取Cl原创 2017-09-20 20:38:22 · 357 阅读 · 0 评论 -
interrupt、interrupted和isInterrupted的区别
今天在看到Thread类的isInterrupted方法可以获取线程的中断状态:于是写了个例子想验证一下:public class Interrupt { public static void main(String[] args) throws Exception { Thread t = new Thread(new Worker()); t.start(转载 2017-08-05 07:04:07 · 440 阅读 · 0 评论 -
停止线程的三种方法
在Java中有以下3种方法可以终止正在运行的线程: 1. 抛异常法; 2. 使用stop方法强行终止线程 3. 使用interrupt方法中断线程 下面分别对它们进行介绍: 一、抛异常法 抛异常法:顾名思义就是通过抛出一个异常,然后再捕获异常,从而跳过后面要继续执行的语句,达到终止线程的目的。使用抛异常法首先要判断该线程是否是停止状态,只有是停止状态才抛异常。 下面是具体原创 2017-08-04 17:50:56 · 1776 阅读 · 0 评论 -
守护(Daemon)线程
在Java线程中有两种线程,一种是用户线程,另一种就是守护(Daemon)线程。 什么是守护线程?守护线程是一种特殊的线程,它的特性有陪伴的含义,当进程中不存在非守护线程了,则守护线程自动销毁。守护线程的作用是为其他线程的运行提供便利服务,最典型的应用就是GC(垃圾回收器),它是一个很称职的守护者。 下面通过一个示例演示守护线程随用户线程的结束而销毁。/*守护线程 * 其它所有的用户线程结束,原创 2017-08-16 11:40:37 · 353 阅读 · 0 评论 -
Java枚举使用详解
在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。在java中如何更好的使用这些“数据集”呢?因此枚举便派上了用场,以下代码详细介绍了枚举的用法。package com.ljq.test;/** * 枚举用法详解 * * @author jiq转载 2017-08-09 16:20:33 · 149 阅读 · 0 评论 -
线程同步--synchronized详解
在Java的多线程中有两种编程模型:异步编程模型和同步编程模型。 假设t1和t2为两个线程,则 异步编程模型: t1线程执行t1的,t2线程执行t2的,两个线程之间谁也不等谁 同步编程模型:t1线程和t2线程执行,当t1线程必须等t2线程之行结束之后,t1线程才能执行,这是同步编程模型。为什么要引入同步呢? 为了数据的安全。尽管应用程序的使用率降低,但是为了保证数据是安全的,必须加入线原创 2017-08-16 19:57:09 · 371 阅读 · 0 评论 -
定时器--Timer
在JDK库中,Timer类主要负责计划任务的功能,也就是在指定的时间开始执行某一个任务。Timer类的主要作用是设置计划任务,但封装任务的类却是TimerTask类。执行任务的代码要放入TimerTask的子类中,因为TimerTask是一个抽象类。 下面以一个示例演示如何使用定时器:public class TimerTest01 { public static void main(Str原创 2017-08-10 21:27:14 · 199 阅读 · 0 评论 -
Java拾遗-编程风格
一门编程语言,如果没有自己的编程风格,那么编写的代码会变得难以阅读,给后期的维护带来很多影响。而良好的编程风格不仅让人们阅读起来容易,还能提高编程效率。在编写Java程序时,很多时候都会涉及使用一对大括号,比如类体、方法体、循环体等都会用一对大括号括起若干代码,也就是“代码块”都是用一对大括号括起来的若干代码。“代码块”有两种流行的写法:一种是“独行”风格,一种是“行尾”风格。下面分别介绍:原创 2017-08-04 07:54:16 · 889 阅读 · 0 评论 -
Java拾遗-标识符及其命名规则
Java语言中的类名、对象名、方法名、常量名和变量名统称为标识符。 为了提高程序的可读性,在定义标识符时,要尽量遵循“见名知意”的原则。Java标识符的具体命名规则如下:一个标识符可以由几个单词连接而成,以表明它的意思;标识符由一个或多个字母、数字、下划线(_)和美元符号($)组成,没有长度限制;标识符中的第一个字符不能为数字;标识符不能是关键字;标识符不能是true,false和nul原创 2017-08-04 09:49:31 · 346 阅读 · 0 评论 -
多线程-进程和线程概述以及如何使用多线程
1.什么是进程? 进程是操作系统结构的基础;是一次程序的执行; 是一个程序及其数据在处理机上顺序执行时所发生的活动; 是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 2.什么是线程? 线程是进程中独立运行的子任务。 3.多线程的优点:可以大大提升系统的运行效率。 4.多线程的特点:多线程是异步的,不能把Eclipse里代码的顺序当做线程的执行顺序,线程被调原创 2017-08-04 10:23:52 · 272 阅读 · 0 评论 -
多线程-实例变量与线程安全
自定义线程类中的实例变量针对其他线程有共享和不共享之分,这在多个线程之间进行交互时是一个很重要的技术点。不共享数据的情况下面通过一个示例来看下数据不共享的情况。package com.vhqimk.thread;/* * 测试数据不共享的情况 */public class Test { public static void main(String[] args) {原创 2017-08-04 11:32:39 · 491 阅读 · 0 评论 -
TimerTask类和Timer类的cancel()方法详解
无论是TimerTask类还是Timer类,其cancel()方法都是为了清除任务队列中的任务。虽然都是清除任务队列中的任务,却有一些不同:TimerTask类中的cancel()方法侧重的是将自身从任务队列中清除,其他任务不受影响,而Timer类中的cancel()方法则是将任务队列中全部的任务清空。下面以具体示例进行演示。 TimerTask类中的cancel()方法测试:import jav原创 2017-08-11 17:43:30 · 31010 阅读 · 0 评论 -
关于i--与System.out.println()联合使用时可能出现的异常情况
println()方法与i--联合使用时“有可能”出现异常,虽然println()方法在内部是同步的,但i--的操作却是在进入println()之前发生的,所以有发生非线程安全问题的概率,如图 1-4所示。 图 1-4 println内部同步示例代码如下:package com.vhqimk.thread;/* * 测试i--与println()联合使用时可能出现异常 */public c原创 2017-08-04 16:27:58 · 1306 阅读 · 0 评论 -
schedule方法和scheduleAtFixedRate方法的区别
schedule方法和scheduleAtFixedRate方法都可以实现任务的延时和不延时执行且都会按顺序执行,因此不需要考虑非线程安全的情况。它们的主要区别只在于有没有追赶特性。其中,schedule方法不具有追赶特性,而scheduleAtFixedRate方法具有追赶特性。下面以实示例演示什么是追赶特性。 首先验证schedule方法不具有追赶执行性:import java.util.Ca原创 2017-08-11 19:58:52 · 3309 阅读 · 0 评论 -
Java笔记--08
IO需要掌握的16个流 FileInputStream FileOutputStream FileReader FileWriterBufferedReader BufferedWriter BufferedInputStream BufferedOutputStreamDataInputStream DataOutputStreamObjectInputStream Object原创 2017-09-12 23:38:17 · 363 阅读 · 0 评论