09 2018 档案

摘要:sleep:Thread类中定义的方法,表示线程休眠,会自动唤醒;wait:Object中定义的方法,需要手工调用notify()或者notifyAll()方法。sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用s 阅读全文
posted @ 2018-09-30 23:50 尐鱼儿 阅读(1445) 评论(0) 推荐(0) 编辑
摘要:主要相同点:Lock能完成synchronized所实现的所有功能 。 主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。Lock还有更强大的功能,例如,它的try 阅读全文
posted @ 2018-09-30 23:38 尐鱼儿 阅读(504) 评论(0) 推荐(0) 编辑
摘要:分几种情况: 1.其他方法前是否加了synchronized关键字,如果没加,则能。 2.如果这个方法内部调用了wait,则可以进入其他synchronized方法。 3.如果其他个方法都加了synchronized关键字,并且内部没有调用wait,则不能。 4.如果其他方法是static,它用的同 阅读全文
posted @ 2018-09-30 23:33 尐鱼儿 阅读(131) 评论(0) 推荐(0) 编辑
摘要:多线程并发访问同一个对象(临界资源),如果不对线程进行同步控制,破坏了原子操作(不可再分的操作),则会造成临界资源(两个线程同时访问的资源)的数据不一致。 每一个对象都有一个互斥的锁标记和一个锁池。当线程拥有这个对象的锁标记时才能访问这个资源,没有锁标记便进入锁池,保证在同步代码块中只有一个线程,解 阅读全文
posted @ 2018-09-30 23:30 尐鱼儿 阅读(147) 评论(0) 推荐(0) 编辑
摘要:线程的生命周期: 1)初始状态:此时线程只是处于JVM进程中,只是创建了一个线程对象,并没有真正开始运行。 2)可动行状态:调用线程对象的start()方法,此时线程才真正的被创建,进入可运行状态,等待CPU的调度。“万事俱备,只欠CPU”。 3)运行状态:正在运行的线程,此时它拥有CPU的执行权。 阅读全文
posted @ 2018-09-30 23:29 尐鱼儿 阅读(140) 评论(0) 推荐(0) 编辑
摘要:Thread中的一些方法: currentThread() 返回对当前正在执行的线程对象的引用(实现接口方式时使用)。 sleep(long millis) 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)。 本线程不会去抢,除非sleep结束。 多个线程之间都会去抢执行权限,不会考虑优先级。 阅读全文
posted @ 2018-09-30 23:27 尐鱼儿 阅读(116) 评论(0) 推荐(0) 编辑
摘要:进程:同一个操作系统中执行的一个子程序,包含了三部分虚拟CPU、代码、数据。 多进程:同一个操作系统中执行的多个并行的子程序。可以提高cpu的使用率。 线程:在同一个进程当中执行的子程序流。 多线程:同一个进程当中并发执行的多个子程序流。可以提高cpu的使用率。 进程与线程的区别: 进程有独立的进程 阅读全文
posted @ 2018-09-30 23:26 尐鱼儿 阅读(96) 评论(0) 推荐(0) 编辑
摘要:写一个类,继承Thread类,覆盖Thread类中继承来的run()方法,这样就写好了自定义的线程类。 继承java.lang.Thread类: 启动线程: 写一个类,实现Runable接口,实现其中的run()方法。这种方法写好的类的对象需要作为线程类创建对象时构造方法的参数。 实现java.la 阅读全文
posted @ 2018-09-30 23:26 尐鱼儿 阅读(112) 评论(0) 推荐(0) 编辑
摘要:【例子1】向文件中写入字符串 查看hello.txt会看到“你好”。 当然也可以一个字节一个字节的写。 结果还是:“你好” 【例子2】向文件中追加新内容 【运行结果】: 你好Rollen 【例子3】读取文件内容 【运行结果】: 但是这个例子读取出来会有大量的空格,我们可以利用in.read(b);的 阅读全文
posted @ 2018-09-30 22:41 尐鱼儿 阅读(199) 评论(0) 推荐(0) 编辑
摘要:【例子1】创建一个新文件。 【运行结果】: 程序运行之后,在d盘下会有一个名字为hello.txt的文件。 【例子2】File类的两个常量 【运行结果】: 此处多说几句:我直接在windows下使用\进行分割不行吗?当然是可以的。但是在linux下就不是\了。所以,要想使得我们的代码跨平台,更加健壮 阅读全文
posted @ 2018-09-30 22:36 尐鱼儿 阅读(623) 评论(0) 推荐(0) 编辑
摘要:字节输入流:InputStream类为所有字节输入流的父类。 三个基本的read()方法: 其它方法: 字节输出流:OutputStream类是所有字节输入流的父类。 三个基本的write()方法: 其它方法: 文件输入输出流:FileInputStream和FileOutputStream 要构造 阅读全文
posted @ 2018-09-30 22:34 尐鱼儿 阅读(166) 评论(0) 推荐(1) 编辑
摘要:流的概念:流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。 流的分类: 按数据方向分:输入流和输出流。 输入流:Inpu 阅读全文
posted @ 2018-09-30 22:33 尐鱼儿 阅读(1021) 评论(0) 推荐(0) 编辑
摘要:不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非sta 阅读全文
posted @ 2018-09-30 22:31 尐鱼儿 阅读(328) 评论(0) 推荐(0) 编辑
摘要:(1)前言,想要明白hashCode的作用,你必须要先知道Java中的集合。 Java中的集合(Collection)有两类,一类是List,再有一类是Set。 前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。 那么我们怎么判断两个元素是否重复呢? 这就是Object.equa 阅读全文
posted @ 2018-09-30 22:30 尐鱼儿 阅读(9862) 评论(3) 推荐(6) 编辑
摘要:ClassLoader一个经常出现又让很多人望而却步的词,本文将试图以最浅显易懂的方式来讲解 ClassLoader,希望能对不了解该机制的朋友起到一点点作用。 要深入了解ClassLoader,首先就要知道ClassLoader是用来干什么的,顾名思义,它就是用来加载Class文件到JVM,以供程 阅读全文
posted @ 2018-09-30 22:29 尐鱼儿 阅读(913) 评论(0) 推荐(0) 编辑
摘要:调用该访问 返回一个以字符串指定类名的类的对象。 返回字节码,返回字节码的方式有几种: ①:这份字节码曾经被加载过已经存在java虚拟机中了直接返回。 ②:java虚拟机中还没有这份字节码,用类加载器去加载 把加载进来的字节码缓存在虚拟机中,以后再得到这个字节码就不用再加载。 得到字节码对应的实例对 阅读全文
posted @ 2018-09-30 22:25 尐鱼儿 阅读(319) 评论(0) 推荐(0) 编辑
摘要:含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以 阅读全文
posted @ 2018-09-30 22:20 尐鱼儿 阅读(174) 评论(0) 推荐(0) 编辑
摘要:Overload是重载的意思,Override是覆盖的意思,也就是重写。 重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。 重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个 阅读全文
posted @ 2018-09-30 22:18 尐鱼儿 阅读(211) 评论(0) 推荐(0) 编辑
摘要:断言(assert):用来调试、测试代码。 格式: assert 布尔表达式: 字符串 (如果布尔表达式为false时,这个字符串才会显示)。 注意: assert默认是关闭的,使用时需要使用" -ea "进行开启," -da "是关闭,如:java -ea 类名。 断言是以异常方式去执行的,当断言 阅读全文
posted @ 2018-09-30 22:16 尐鱼儿 阅读(985) 评论(0) 推荐(0) 编辑
摘要:==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。 如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(堆内存),变量也占用一块内存,例如Objet o 阅读全文
posted @ 2018-09-30 22:16 尐鱼儿 阅读(2183) 评论(0) 推荐(0) 编辑
摘要:一、异常的定义 在《java编程思想》中这样定义 异常:阻止当前方法或作用域继续执行的问题。虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"的态度来看待异常。绝对一点说异常就是某种意义上的错误,就是问题,它可能会导致程序失败。之所以java要提出异常处理机制,就是要告诉开发人员,你的 阅读全文
posted @ 2018-09-30 22:15 尐鱼儿 阅读(195) 评论(0) 推荐(0) 编辑
摘要:定义: 内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限)。内部类主要有以下几类:成员内部类、局部内部类、静态内部类、匿名内部类 为什么需要内部类 阅读全文
posted @ 2018-09-30 22:14 尐鱼儿 阅读(147) 评论(0) 推荐(0) 编辑
摘要:String:不可改变的Unicode字符序列。 池化思想,把需要共享的数据放在池中,用一个存储区域来存放一些公用资源以减少存储空间的开销。 在String类中,以字面值创建时,会到Java方法空间的串池中去查找,如果没有则会在串池里创建一个字符串对象,并返回其地址赋给对象变量,如果有就返回串池中字 阅读全文
posted @ 2018-09-30 22:13 尐鱼儿 阅读(114) 评论(0) 推荐(0) 编辑
摘要:Object类的方法有: hashCode(): 返回该对象的哈希码值 hashCode 的常规协定是: 在 Java 应用程序执行期间,在同一对象上多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是对象上 equals 比较中所用的信息没有被修改。 如果根据 equals(Obj 阅读全文
posted @ 2018-09-30 22:12 尐鱼儿 阅读(116) 评论(0) 推荐(0) 编辑
摘要:Java包装类,Wrapper~由于在java中,数据类型总共可分为两大种,基本数据类型(值类型)和类类型(引用数据类型)。基本类型的数据不是对象,所以对于要将数据类型作为对象来使用的情况,java提供了相对应的包装类。对于8种数据类型的包装类分别是: 包装类提供了很多互相转换的方法,这里不一一细说 阅读全文
posted @ 2018-09-30 22:11 尐鱼儿 阅读(173) 评论(0) 推荐(0) 编辑
摘要:接口的定义:接口从本质上说是一种特殊的抽象类。 关键字interface。 在接口中,所有的方法为公开、抽象的方法:public abstract。 在接口中,所有的属性都是公开、静态的常量:public static final。 接口与接口之间可以多继承,用extends,多个之间用逗号隔开。 阅读全文
posted @ 2018-09-30 22:10 尐鱼儿 阅读(374) 评论(0) 推荐(0) 编辑
摘要:abstract表示抽象的,是最重要的一个修饰符,可以修饰类和方法。分别叫做抽象方法和抽象类。人们在认识事物的时候,会把具有相同特征和行为的事物归为一个抽象类。比如动物就是一个很抽象的概念。当得到动物的实例时,总是某个具体物种的实例。所以说,在需要某个抽象类的实例时,只能够用某个具体类的实例来代替。 阅读全文
posted @ 2018-09-30 22:08 尐鱼儿 阅读(372) 评论(0) 推荐(0) 编辑
摘要:Java提供了public, private, protected 三个访问权限修饰词,提供了以下四种访问权限控制机制: 1、包访问权限; 2、Public访问权限; 3、Private访问权限; 4、Protected访问权限; 1、包访问权限 包访问权限是Java为了便于程序员开发而给定的一种权 阅读全文
posted @ 2018-09-30 22:07 尐鱼儿 阅读(253) 评论(0) 推荐(0) 编辑
摘要:把对象相关的变成类相关的,它可以修饰属性、方法、代码块和内部类。 static修饰属性(类变量): 那么这个属性就可以用" 类名.属性名 "来访问,也就是使这个属性成为本类的类变量,为本类对象所共享。 类加载的过程,类本身也是保存在文件中(字节码文件保存着类的信息)的,java会通过I/O流把类的文 阅读全文
posted @ 2018-09-30 22:06 尐鱼儿 阅读(405) 评论(0) 推荐(0) 编辑
摘要:不允许改变,可以修饰变量、方法、类。 final修饰变量: 被final修饰的变量就会变成常量,一旦赋值不能改变。 常量可以在初始化时直接赋值,也可以在构造方法里赋值,只能在这两种方法里二选一,不能不为常量赋值。 常量不会有默认初始值。 锁定栈,使栈中的数据不可以改变。 静态常量只能在初始化时直接赋 阅读全文
posted @ 2018-09-30 22:06 尐鱼儿 阅读(171) 评论(0) 推荐(0) 编辑
摘要:Java 串行化技术可以使你将一个对象的状态写入一个Byte 流里,并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的串行化机制是RMI、EJB等技术的技术基础。用途:利用对象的串行 阅读全文
posted @ 2018-09-30 22:04 尐鱼儿 阅读(94) 评论(0) 推荐(0) 编辑
摘要:类:主观抽象,是对象的模板,可以实例化对象。 习惯上类的定义格式: 定义属性:实例变量。 格式:[ 修饰符 ] 类型 变量名 [ = ? ] 实例变量定义在类中但在任何方法之外。 实例变量有默认值:各种各样的0。(同数组) 实例变量的作用域至少在本类内部,受访问控制符的限制。 在重合作用域,实例变量 阅读全文
posted @ 2018-09-30 22:01 尐鱼儿 阅读(114) 评论(0) 推荐(0) 编辑
摘要:数组是有序数据的集合,数组中的每个元素具有相同的数组名和下标来唯一地确定数组中的元素。 声明数组: 数组能以下列形式声明: 类型[] array; 类型 array[]; 注: JAVA中推荐用:类型[] array; 一个数组是一个对象 声明一个数组没有创建一个对象 声明时不用指定长度 创建数组: 阅读全文
posted @ 2018-09-30 21:59 尐鱼儿 阅读(142) 评论(0) 推荐(0) 编辑
摘要:1、包(package)。用于将完成不同功能的类分门别类,放在不同的目录(包)下。包的命名规则:将公司域名反转作为包名。比如www.shengsiyuan.com,则包名字就可以写成com.shengsiyuan(包名),对于包名:每个字母都需要小写。 编译通过执行出现如下错误: 【说明】:NoCl 阅读全文
posted @ 2018-09-30 21:58 尐鱼儿 阅读(215) 评论(0) 推荐(0) 编辑
摘要:局部变量:不是声明在类体括号里面的变量。 (1)必须要先赋值,后使用,否则通不过编译,局部变量没有默认初始化值。 (2)作用范围:定义开始到定义它的代码块结束。 (3)同一范围内,不允许2个局部变量命名冲突。 参数传递时,简单类型进行值转递(参数进行传递时都会先去栈中生成一个副本的,使用结束后释放) 阅读全文
posted @ 2018-09-30 21:57 尐鱼儿 阅读(296) 评论(0) 推荐(0) 编辑
摘要:Java中内存分为: 栈:存放简单数据类型变量(值和变量名都存在栈中),存放引用数据类型的变量名以及它所指向的实例的首地址。 堆:存放引用数据类型的实例。 Java的垃圾回收 由一个后台线程gc进行垃圾回收。 虚拟机判定内存不够的时候会中断代码的运行,这时候gc才进行垃圾回收。 缺点:不能够精确的去 阅读全文
posted @ 2018-09-30 21:56 尐鱼儿 阅读(244) 评论(0) 推荐(0) 编辑
摘要:运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。下面介绍JAVA中的运算符: (1)算术运算符: 单目:+(取正) -(取负) ++(自增1) --(自减1) 双目:+ - * / %(取余) 三目:a>b?true:false 说明:当a大于b的时候,为true(也就是冒号之前的值 阅读全文
posted @ 2018-09-30 21:55 尐鱼儿 阅读(253) 评论(0) 推荐(0) 编辑
摘要:标识符可以用来标识变量名、类名、类中的方法名和文件名等。 命名规则: (1) 由字母、数字、下划线、$组成,不能以数字开头。 (2) 大小写敏感。 (3) 不得使用java中的关键字和保留字。 关键字:都是小写的,jdk1.2多了strictfp(经准浮点型),关键字 jdk1.4多了assert( 阅读全文
posted @ 2018-09-30 21:54 尐鱼儿 阅读(379) 评论(0) 推荐(0) 编辑
摘要:注释是给人看的,不是给计算机看的。Java中共有3种类型的注释: // 单行注释,到本行结束的所有字符会被编译器忽略。 / / 多行注释,在/ /之间的所有字符会被编译器忽略。 / */ 文档注释,java特有的,在/ */之间的所有字符会被编译器忽略。 可以用javadoc把java源程序中这种注 阅读全文
posted @ 2018-09-30 21:51 尐鱼儿 阅读(161) 评论(0) 推荐(0) 编辑
摘要:基本数据类型(Primitive Data Type):8种。 1) 整型 2) 浮点类型 3) 字符类型 4) 布尔型 1B 注: 1、Java中的自动类型提升问题。 正向过程:从低字节到高字节可以自动转换。 byte->short->int->long->float->double 逆向过程:从 阅读全文
posted @ 2018-09-30 21:50 尐鱼儿 阅读(154) 评论(0) 推荐(0) 编辑
摘要:面向对象是一种程序的设计方法,或者说它是一种程序设计范型,其基本思想是使用对象,类,继承,封装,消息等基本概念来进行程序设计。 它是从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根 阅读全文
posted @ 2018-09-30 21:49 尐鱼儿 阅读(1387) 评论(0) 推荐(0) 编辑
摘要:(1) 第一个程序HelloWorld: 注: 1、文件名必须和public修饰的类名一致,以.java作为文件后缀,如果定义的类不是public的,则文件名与类名可以不同。 2、一个.java文件中可以有多个class,但是只有一个public修饰的类。 3、java源代码文件编译后,一个类对应生 阅读全文
posted @ 2018-09-29 15:57 尐鱼儿 阅读(12702) 评论(0) 推荐(0) 编辑
摘要:Java简介 Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。(注:Sun公司已于2009年04月20日被Oracle公司收购) 目前,Java 分为三个版本: Java SE:Java Standard Edition 适用于桌面系统 阅读全文
posted @ 2018-09-29 13:47 尐鱼儿 阅读(198) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示