
JavaSE
文章平均质量分 75
Enjoy96
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【我的Java笔记】Java面向对象思想设计原则及常见设计模式
面向对象设计原则1.单一职责原则(高内聚,低耦合)每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个。这设计模式中,所有的设计模式都遵循这一原则。2.开闭原则一个对象对扩展开放,对修改关闭(对类的改动通过增加代码进行,而不是修改现有代码) 这就需要借助于抽象和多态,即把可能变化的内容抽象出来,从而使抽象的部分是相对稳定的,而具体的实现原创 2017-12-28 21:09:41 · 421 阅读 · 0 评论 -
【我的Java笔记】IO流_IO流中的其他类
DataOutputStream & DataInputStream数据输出流 & 数据输入流1.概述:二者都属于数据流(可以针对Java基本数据类型进行读写操作)注:通过DataOutputStream写入的数据不能直接读懂,需要靠DataInputStream来读出写入的数据2.构造方法:DataOutputStream :public DataOutputSt原创 2017-11-30 18:05:23 · 309 阅读 · 0 评论 -
【Java作业】2017.11.11 / 2017.11.12
作业一/* * 获取10个1-20之间的随机数并进行排序,要求不能重复 * */import java.util.TreeSet;import java.util.Random;public class NewTest { public static void main(String[] args) { Random r = new Random(); Tr原创 2017-11-16 09:47:18 · 343 阅读 · 0 评论 -
【我的Java笔记】IO流_使用IO流进行文件的复制和粘贴
IO流中文件复制粘贴的操作步骤:1.数据源文件-------->输入流-------->读数据2.目的地文件-------->输出流-------->写数据一、文本文件(优先采用字符流)注:读取速度最快:采用高效字符输入流中的一次读取一个字符数组速度最快( new BufferReader(new FileReader()) )写入速度最快:采用高效原创 2017-11-27 23:03:27 · 875 阅读 · 1 评论 -
【我的Java笔记】增强for循环 & ArrayList集合储存自定义对象并遍历的五种方法
增强for循环1.增强for循环的作用:在集合中,增强for循环的作用是用来代替迭代器2.优点:书写格式简单,代码量少3.弊端:遍历数组或集合的时候,数组对象或者集合对象不能为null(需加上非空判断)注:在Java中,只要是对象,那么一定要给对象做非空判断,避免出现空指针异常4.书写格式:for(数组或者集合中的数据类型 变量名:数组或者集合对象){变量的输出;原创 2017-11-14 16:10:10 · 4675 阅读 · 0 评论 -
【我的Java笔记】集合_Set
Set集合(接口)1.概述:Set集合继承自Collection接口集合2.Set集合特点:(1)Set集合中储存的元素无序(存取不一致)(2)Set集合中储存的元素唯一,不重复(Set接口底层数据是一个哈希表)3.Set集合为接口,所以要靠子实现类HashSet,TreeSet来实现注:Set集合和List集合的区别(1)List集合元素可以重复,并且存在有序原创 2017-11-14 16:45:31 · 345 阅读 · 0 评论 -
【我的Java笔记】集合的遍历嵌套
1.HashMap集合嵌套HashMap集合例:/* * 基础班: * 佩里西奇---20 * 坎德雷瓦---21 * 就业班: * 伊卡尔迪---22 * 汉达诺维奇---23 * * */import java.util.HashMap;import java.util.Set;public class HashMapDemo {原创 2017-11-20 17:02:59 · 478 阅读 · 0 评论 -
【我的Java笔记】File类
File类1.概述:File类是java.io包中唯一代表磁盘文件本身的对象,文件和目录路径名的抽象表示形式2.作用:常用于IO流中,可通过调用File类中的方法,实现创建、删除、重命名文件等操作3.常用的构造方法:(1)public File(String pathname)给定路径名以字符串来表示当前这个文件或者文件夹(开发中推荐使用第一种构造方法) (2原创 2017-11-22 01:53:58 · 373 阅读 · 0 评论 -
【我的Java笔记】集合中 toArray() 方法的使用
在Collection集合中存在一个将集合转为数组的方法:1.Object[] toArray()2. T[] toArray(T[] a)两种方法在API中的描述:注: T[] toArray(T[] a) 方法返回的数组类型一定是集合中所储存的类型,如:集合中存储的为Character类型则返回的数组类型也应为Characte原创 2017-11-24 21:41:05 · 20345 阅读 · 4 评论 -
【我的Java笔记】递归练习_兔子问题
递归的概述:方法调用方法本身的一种现象前提条件:(1)需要定义一个方法 (2)必须存在出口条件 (3)必须存在规律例:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?分析:规律:第一个月:1 第二个月:1 第三个月:2 第四个月:3原创 2017-11-28 21:02:50 · 720 阅读 · 0 评论 -
【我的Java笔记】IO流_操作文本文件存在中文乱码的问题 & 编码和解码
在IO流中对文本文件进行操作时,常常其中含有中文字符,而在对含有中文字符的文本文件进行操作时经常会出现乱码的情况出现。譬如以下这个例子:import java.io.FileInputStream;import java.io.IOException;public class ChineseCopyDemo { public static void main(String[] ar原创 2017-11-28 20:14:34 · 743 阅读 · 0 评论 -
【我的Java笔记】Collection集合的概述 & List
1.概念:可以储存对象的容器变量2.容器变量:数组,StringBuffer和StringBuilder。对于数组来说,数组的长度是固定的,不符合实际需求(长度不可变)StringBuffer始终在内存中返回的是字符串类型,也不满足元素类型变化的要求3.题目:集合和数组的区别(1)长度的区别: 数组:长度是固定的; 集合:长度是可变的 (2)存储数据原创 2017-11-08 17:30:46 · 443 阅读 · 0 评论 -
【Java作业】2017.11.25 / 11.26
作业一:已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl”请编写程序读取数据内容,把数据排序后写入ss.txt中。方式1:使用高效字符流,一次读取一个字符/* * 需求: * 已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl” * 请编写程序读取数据内容,把数据排序后写入s原创 2017-11-30 19:44:28 · 604 阅读 · 0 评论 -
【我的Java笔记】集合工具类_Collections
Collections类1.概述:针对Collection集合操作的工具类2.常用方法:(1)public static void sort(List list)排序,默认按照自然顺序(2)public static int binarySearch(List list,T key)二分查找(3)public static T max(Collection col原创 2017-11-20 17:58:12 · 277 阅读 · 0 评论 -
【我的Java笔记】异常类
1.异常的分类:(1)严重问题:不去处理(2)编译时期异常:只要不是RuntimeException中的异常都属于编译时期异常出现的原因:语法有问题,要么使用的是Sun公司提供的一些类的中的方法(这个方法本身调用的时候就会异常存在,调用者必须处理,不处理编译不通过)(3)运行时期异常:RuntimeException可能由于我们代码的逻辑不够严谨导致的问题,例:NullPoin原创 2017-11-21 22:26:56 · 264 阅读 · 0 评论 -
【我的Java笔记】Java反射_反射的应用
反射在集合中的应用例:一个ArrayList集合对象,需要给集合里添加String类型数据/* * 一个ArrayList集合对象,给此集合里添加字符串数据 * */import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.ArrayLi原创 2017-12-26 15:35:10 · 343 阅读 · 0 评论 -
【我的Java笔记】计时器 Timer
Timer1.概述:一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行2.构造方法:(1)public Timer()创建一个新计时器(2)public Timer(String name)创建一个新计时器,并指定名称(3)public Timer(boolean isDaemon)创建一个新计时器,可指定其相关线程作为守原创 2017-12-06 20:44:33 · 494 阅读 · 0 评论 -
【我的Java笔记】多线程_使用匿名内部类的方式实现多线程
1.多线程中匿名内部类实现的方式:(1)格式1:new Thread(new Runnable(){ // 方法重写 run() }).start();(2)格式2:new Thread(){// 方法重写 run()}2.匿名内部类的实质:继承了该类或者是实现了该接口的子类对象例1:p原创 2017-12-06 17:26:21 · 943 阅读 · 0 评论 -
【我的Java笔记】多线程_多线程实现的第三种方式(线程池)
Executors(工厂类)方法:public static ExecutorService newFixedThreadPool(int nThreads)指定在线程池中多少条线程注:此方法返回的是ExecutorService对象,该对象表示一个线程池,可以执行Runnable对象或者Callable对象代表的线程ExecutorService(接口)原创 2017-12-06 16:51:21 · 345 阅读 · 0 评论 -
【我的Java笔记】多线程_多线程的概述 & 实现方式
进程1.进程的概念:正在运行的程序。进程是系统分配资源调用的一个独立单位2.多进程的意义:(1)计算机在做一件事情的同时还可以做另一件事(2)为了提高CPU的使用率3.多进程:两个程序之间并不是同时进行,而是由CPU的一点点时间片在两者之间的高效切换线程1.线程是依赖于进程存在,一个线程相当于进程中的某原创 2017-12-04 16:07:41 · 251 阅读 · 0 评论 -
【我的Java笔记】多线程_线程组
ThreadGroup1.概述:线程组表示一个线程的集合2.构造方法:public ThreadGroup(String name) 构造一个新线程组3.成员方法:public final String getName() 返回此线程组的名称Thread类中:public Thread(ThreadGroup group,Runnable原创 2017-12-06 15:02:07 · 281 阅读 · 0 评论 -
【我的Java笔记】多线程_等待唤醒机制(生产消费者模式)
等待唤醒机制生产消费者模式:1.机制理解:生产者线程生产数据,如果本身就有数据,需要等待消费者线程输出数据,利用锁对象中的notify()唤醒(通知)消费者线程来输出数据消费者线程输出数据,那么如果本身没有数据了,需要等待生产者线程产生数据,通知生产者线程生产数据.2.模式图解注:在多线程环境下完成此模式各线程应针对同一对象进原创 2017-12-05 23:39:18 · 440 阅读 · 0 评论 -
【我的Java笔记】多线程安全问题 & 同步机制
目前所学过安全的类:(1)Vector (多用于合并流)(2)StringBuffer(3)Hashtable(4)Collections类中的:public static List synchronizedList(List list)返回指定列表支持的同步(线程安全的)列表1.检验多线程是否安全的标准:(1)当前是否为多线程环境原创 2017-12-05 00:18:25 · 291 阅读 · 0 评论 -
【我的Java笔记】多线程_使用Lock锁对象解决线程安全问题
Lock(接口)在JDK5以后Java提供了一个更具体的锁对象——Lock:Lock为接口,ReentrantLock为子实现类1.成员方法:(1)public void lock()获取锁 (2)public void unlock()试图释放此锁格式:try{Lock对象.lock();//获取锁//···}finally{L原创 2017-12-05 16:42:01 · 496 阅读 · 0 评论 -
【我的Java笔记】网络编程_UDP协议编程
UDP协议编程(接收端与发送端)1.UDP协议原理图解:2.UDP协议通讯的特点:(1)之间无需建立连接通道(以数据包的形式发往目的地)(2)属于不可靠协议(3)无需建立连接通道,执行效率高(4)发送数据大小有限3.UDP程序操作步骤:(1)发送数据包:①使用DatagramSocket() 创建一个数据包套接字②使用Datagr原创 2017-12-11 23:53:13 · 345 阅读 · 0 评论 -
【我的Java笔记】标准输入和标准输出流
标准输入和标准输出流System类中有两个字段:1)in------------>InputStream is = System.in ; public static final InputStream in2)out---------->PrintStream ps = System.out ;public static final PrintStream out原创 2017-12-01 20:27:31 · 805 阅读 · 0 评论 -
【我的Java笔记】ArrayList集合的遍历嵌套
例子:假设有一个年级,一个年级中存在多个班级,而班级中的每一个学生都是一个对象ArrayList表示一个班级,而年级大的集合则可用:ArrayList>来表示图解:/* * 集合的遍历嵌套 * 大集合:ArrayList> * */import java.util.ArrayList;public class FootballTest { pub原创 2017-11-14 14:35:48 · 1119 阅读 · 0 评论 -
【我的Java笔记】I/O流
I / O流(输入/输出 流)1.概述:I/O(Input/Output,输入/输出)流提供了一条通道程序,可以使用这条通道把源中的字节序列送到目的地。2.输入/输出模式图解3. I/O流的作用:设备和设备之间的数据传输(硬盘和内存之间)4.IO流的分类:(1)按流的流向分为:①输入流:读数据②输出流:写数据(2)按数据类型分为:①字节流原创 2017-11-23 22:38:07 · 308 阅读 · 0 评论 -
【我的Java笔记】IO流_输出流中给文本文件追加数据的方法
1. IO流中给文本追加数据的方法append():(1)该方法是Writer类(字符输出流)中的方法,该类为抽象类,可用的子实现类为:OutputStreamWriter和BufferedWriter(2)API中的方法描述:注:字符序列即字符串(3)构造方法:1)public OutputStreamWriter(File file,true):第二个参数设置为tr原创 2017-11-25 21:34:16 · 11312 阅读 · 2 评论 -
【我的Java笔记】常用类
object类1.概念:类 Object 是类层次结构的根类。每个类都使用 Object 作为超类(父类)。所有对象(包括数组)都实现这个类的方法。2.方法: (1)public int hashCode ( ) 返回该对象的哈希码值hashCode()----->通过哈希算法(哈希表:hashtable)---->地址值(不是实际意义上的地址值)例:Student s =原创 2017-10-31 22:32:56 · 202 阅读 · 0 评论 -
【Java作业】2017.11.04 / 11.05
作业一/* * 需求:获取任意范围内的随机数 * */import java.util.Scanner;public class RandomDemo2 { public static void main(String[] args) { System.out.print("请输入最小值:"); Scanner sc1 = new Scanner(System.in);原创 2017-11-09 17:26:51 · 439 阅读 · 0 评论 -
【我的Java笔记】正则表达式
Pattern & Matcher类1.正则表达式常用的语法:2.正则表达式中的常用方法:(1)String类中的特有功能:public boolean matches(String regex) 告知此字符串是否匹配给定的正则表达式(2)String类的分割功能:public String[] split(String regex)根据给定正则表达式的原创 2017-11-08 16:20:21 · 327 阅读 · 0 评论 -
【我的Java笔记】第四课
面向对象(类与对象)1.对象:对象是事物存在的实体,如人类、书桌、计算机等2.类:同一事物的统称,若将现实世界中的一个事物抽象成对象,类就是这类对象的统称 类是封装对象的属性和行为的载体。具有相同属性和行为的一类实体,可成为类 类→(实例化)对象3.类的分类:静态部分(属性),动态部分(行为)注:Java不支持多继承(一个子类只存在一原创 2017-10-11 15:53:59 · 278 阅读 · 0 评论 -
【我的Java笔记】二分查找法
1.前提:需针对一个有序数组来进行查找2.解决思路: (1)定义最小索引和最大索引 (2)计算出中间索引 (3)拿中间索引对应的元素和要查找的元素进行比较 ①如果相等:直接返回中间索引 ②若不相等: 大了,左边找 小了,右边找 (4)重新获取最小索引和最大索引,计算出中间索引 (5)回到步骤 (3) 继续查找3.图解原创 2017-11-06 22:36:33 · 249 阅读 · 0 评论 -
【我的Java笔记】常用类_Math & System
Math类1.概述:Math类中提供了一些数学运算的方法2.静态导入方法(JDK5.0后的新特性):import static java.lang.Math.abs注:该方法需是静态方法2.常用的成员方法:(1)public static int abs(int a)绝对值 (2)public static double ceil(double a)向上取原创 2017-11-06 21:32:17 · 414 阅读 · 0 评论 -
【我的Java笔记】常用类_日历类
Calendar类(抽象类)1.概述:Calendar类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法2.创建对象方法:该类为一个抽象类,不能实例化,所以通过方法来获得对象:public static Calendar getInstan原创 2017-11-04 23:33:37 · 293 阅读 · 0 评论 -
【Java作业】2017.10.14/10.15
作业一/*定义一个工具类其中提供了对于整形数组和double类型数组的一些工具方法。方法分别有:1.求数组值的和.2.求数组中的最大值3.对数组进行升序排序.4.对数组进行倒序排序(也就是反转数组)工具类要求:a.私有化构造方法b.不希望被继承*/import java.util.Arrays;public class Homework1{ public s原创 2017-10-20 14:41:08 · 345 阅读 · 0 评论 -
【我的Java笔记】第三课
数组1.定义:用来一次性保存多个相同类型元素 数组保存元素的类型 [] 数组变量的名称 = new 数组保存元素的类型[元素的数量]2.分类:一位数组;多维数组3.声明:类型 [ ] 数组变量名称 例 int [ ] arr;4.初始化 (1)动态初始化:在定义一个数组和对数组进行赋值的操作时,分开来执行 例int [] arr原创 2017-10-10 15:16:37 · 285 阅读 · 0 评论 -
【我的Java笔记】第五课
匿名对象1.定义:没有名字的对象2.作用:节省代码。在很多情况下针对某个方法只需调用一次的情况下 匿名对象可以调用方法,也可以给成员变量赋值,同时也可作为方法的参数进行传递封装1.概念:隐藏对象的属性和细节,仅对外提供公共的方法进行访问2.关键字:“private” a.当类的成员变量使用private 修饰符修饰,那么就不可以直接访问到该成员变量原创 2017-10-18 14:34:21 · 398 阅读 · 0 评论 -
【我的Java笔记】第二课
Java三大流程控制1.顺序控制顺序依次执行代码2.条件控制 目的:对程序执行一些不可预知的流程,并进行一个预先的判断 条件:具有真假的特点。并且只能为真,或者为假 (1)if语句 结构: if(条件){ //实现逻辑原创 2017-10-09 15:05:18 · 309 阅读 · 0 评论