自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Xucc_x的博客

慢慢爬

  • 博客(26)
  • 收藏
  • 关注

原创 Java 集合类 2-Set一家人

1. Set接口 Set与List同为Collection的继承子接口最大不同就是Set接口中的内容是不允许重复的。当添加重复元素时,不会报错,但是这个添加操作会被忽略。 而且Set并没有对Collection接口进行方法的扩充。 Set有两个实现子类,分别是HashSet和TreeSet,继承关系如下:1.1 HashSet HashSet定义如下:publi...

2018-05-31 23:06:21 1231

原创 MySQL从零开始 2-关于 '库' 的那点事

 接下来,介绍一下MySQL数据库的几个入门级操作。 我们在使用MySQL的时候,是围绕着数据库(database)这一独立单元进行操作的,所以有关于库的操作方法我们必须掌握。1. 创建库 接下来,介绍一下MySQL数据库的几个入门级操作。 创建库的语法很简单:-- 创建一个名为 databaseName 的数据库字符集为charsetName,校验规则为collation...

2018-05-31 13:02:25 1445

原创 MySQL从零开始 1-数据库那些事

1. 数据库简介  关于MySQL介绍的课本介绍我就不赘述了,直接百度就行了,这里我们探讨一些实在的。  顾名思义,数据库就是存储数据的库。那存储数据,我们可以有Windows自带的记事本,vscode,notepad等等文件编辑器,能能很方便的打开以及在硬盘上存储数据,为什么要专门使用数据库呢?1.安全性 直接保存在硬盘上的文件很容易丢失,损坏,以及被他人获取,而数据库就不会...

2018-05-30 22:29:37 1861

原创 Java 集合类 1-Collection接口以及List子接口

  在实际开发中,数组的出现频率并不高,因为数组有一个很大的缺陷:数组长度固定。所以从JDK1.2开始,为了解决Java数组长度的问题,提供了动态的数组实现框架——Java集合类框架。  Java集合类框架实际上就是针对于数据结构的一种实现。  在Java的集合类库里面(java.util)包含了两个核心接口,Collection与Map。本次我们介绍的是Collection接口。...

2018-05-27 12:39:12 2061

原创 Java数据结构-1 ArrayList顺序表实现

1. ArrayList子类  ArrayList是JavaCollection接口下List子接口的实现子类。它是一个长度可变的数组,底层是以数组为基础的顺序表实现的。所以说研究Java顺序表数据结构必须得了解一下ArrayList类。// ArrayList定义public class ArrayList<E> extends AbstractList<E&gt...

2018-05-25 18:33:49 2653

原创 Java IO 7-序列化反序列化与transient关键字

  序列化这个概念在所有的项目开发中都有。1. 序列化概念  对象序列化指的是:将内存中保存的对象变为二进制数据流的形式进行传输,或者是将这个二进制数据流保存在文本中。  但这并不意味着所有类的对象都需要被序列化,严格来讲,需要被序列化的类对象往往需要传输使用,同时这个类必须实现java.io.Serializable接口。  Serializable接口是一个标识接口,里面没...

2018-05-24 00:01:05 1354

原创 Java IO 6- BufferedReader,Scanner键盘输入和err,in,out

err/in/out  和C/C++一样,Java也有 err/in/out 的概念,Java中是由系统类 System类 给出的。  含义如下:// 错误输出public static final PrintStream err = null;// 标准输入(键盘)public static final InputStream in = null;// 标准输出(显示...

2018-05-23 22:45:31 1269

原创 Java IO 5-打印流

  使用过 OutputStream 输出流的一定会有一种莫名的难受,因为每次给文件中输出内容都得先进行一次额外加工,输出二进制文件还好说,字节输出流直接走,但是IO操作总不能只和二进制文件打交道吧,想输出一个字符串,还得 getBytes() 一下,真是太麻烦了。  但其实,JDK为了解决 OutputStream 这一缺陷,提出了打印流这个概念,即像打印一样将内容打印到文件里。1....

2018-05-23 20:56:10 1175

原创 Java IO 4-Java实现的文件拷贝

  利用Java的InputStream,OutputStream输入输出流我们可以自己实现文件拷贝操作。  对JavaIO流操作不清楚的可以参考 Java IO 2-字节流与字符流  文件拷贝的核心思想其实就是打开一个源文件的流,然后读取文件中的数据,在通过一个输出流,将它输出到指定的目录中。  接下来,我们来实现这个功能。import java.io.File;impor...

2018-05-23 19:59:05 1331

原创 Java IO 3-字节流与字符流的区别

java以流的形式操纵IO,又将流分为两种:字节流与字符流,对JavaIO流操作不清楚的可以参考 Java IO 2-字节流与字符流那字节流与字符流之间又有什么区别呢区别字节流用于操作文件数据,网络传输等场景,而字符流适用于与字符串,中文有关的内容处理,因为Writer/Reader两个抽象类对字符的支持比较好。除了这些,字符输出流写数据时是先将数据写入缓冲区,待字符...

2018-05-23 19:58:10 2965 1

原创 Java IO 2-字节流与字符流

  FILE类只参与文件的创建删除等操作,而不对文件本身内容进行修改。如果要处理文件内容,就需要使用流来进行操作。1. 流的分类流分为输入流与输出流。 输入输出流又分为字节流与字符流,所以总共加起来有如下四种流:InputStream: 字节输入流Reader: 字符输入流OutputStream: 字节输出流Writer: 字符输出流 四者之间的关系如下:...

2018-05-22 23:01:40 1511

原创 从你的U盘里夹点菜

利用 IO 拷贝整个U盘内容到指定路径,无色无味。 思路在代码注释里。package test14;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;imp...

2018-05-22 21:16:25 1248

原创 Java IO 1-IO概念与FILE文件操作类

1. IO概念JavaIO操作的核心是五个抽象类和一个接口,所有的IO操作其实都是在操作这些类和接口,他们分别是: - FILE文件操作类 - OutputStream字节输出流 - InputStream字节输入流 - Reader字符输入流 - Writer字符输出流 - Serializable序列化标识接口  首先介绍一下FILE文件操作类。2. FILE文件操...

2018-05-22 17:51:27 1259

原创 Java 反射5-基础代理模式

1. 代理设计模式概念  两个子类共同实现一个接口,其中一个子类负责真实业务实现,另外一个子类辅助真实业务的完成。就像战场上的狙击手都配有一名观察员,狙击手负责狙杀敌人,观察员负责辅助狙击手完成任务,两人都是为了狙杀敌人这个任务而生。  代理设计模式一般都与工厂设计模式相配合使用,对于工厂设计模式还有疑惑的可以参考: Java 反射3-简单工厂模式// 业务接口inte...

2018-05-22 16:20:10 1302

原创 Java 反射6-动态代理模式

动态代理  动态代理模式的核心特点:一个代理类可以代理所有需要被代理的接口的子类对象,如下所示:  N个接口, N+1个类, 其中 N 个真是业务类,1个代理类(在运行时动态获取当前要代理的接口)。  所以要使用动态代理,那么其代理类类特点必须一致(代理流程一致)。在Java动态代理中,有两个重要的接口和类,首先我们来熟悉一下。 - InvocationHandler接口...

2018-05-22 16:11:15 1283

原创 Java ClassLoader类加载器,自定义类加载器以及双亲委派模型

  在Java反射里,我们频繁接触到Class类,它是描述类信息的类,而Class类中的forName()方法可以根据一个类的全名称得到类的Class对象,其底层原理其实是:根据ClassPath配置的路径进行类的加载。  一般情况下,我们只需要使用JDK提供的默认类加载器,不用关心类加载器。但是如果我们的类加载路径是网络,文件,这个时候我们就得了解类加载器,也就是ClassLoader的作用...

2018-05-22 13:15:20 1871

原创 Java 反射4-反射与单级VO操作

  我们在开发过程中,经常会遇到这样的场景:class Person { private String name; private String gender; public String getName() { return name; } public void setName(String name) { thi...

2018-05-22 11:06:54 1471

原创 Java 反射3-简单工厂模式

1. 工厂设计模式  在程序设计的时候,我们要自始至终本着一个原则:主方法是客户端,对于程序的修改不应该影响客户端。  所以我们应该尽可能地将解决问题的代码不要放在主方法中,而是分类分成不同的模块。  观察下面的代码:// 定义一个接口,接口里只有一个抽象方法interface IFruit { public void eat();}// 定义一个实现类cla...

2018-05-22 09:43:05 1277 2

原创 Java 反射2-反射核心类Constructor、Method、Field以及相关操作

  利用反射可以做出一个对象具备的所有操作行为,这一切的操作核心是基于 Object类。  对于反射基本概念还有疑惑可以参考:   Java 反射1-反射概念,Class类概念,反射创建对象实例化1. 反射取得类信息  通过 Object类 的方法,取得类的信息。1.1 取得类的包名称// 取得当前Class对象包信息public Package getPack...

2018-05-22 09:40:46 1835

原创 Java 反射1-反射概念,Class类概念,反射创建对象实例化

  反射是Java中至关重要的一个概念,我们必须要对它进行掌握。1. 反射概念  反射指的是对对象的反向处理操作。所谓反向指的是根据对象来获得对象的来源信息(对象类的来源信息 包名.类名)。  为了区分正向和反向,我们看下面这个正向例子。// 1. 我们想要创建Date类的对象实例化,首先要引入定义Data类的包import java.util.Date;public...

2018-05-21 17:18:13 1484

原创 Java 线程池

  JDK1.5之引入了了一个关于并发访问的包 。 java.util.concurrent,对于线程池操作的类和相关接口就定义在此包 中,这里面有两个核心的接口:关于普通线程池:public interface ExecutorService extends Executor关于调度线程池:public interface ScheduledExecutorService extend...

2018-05-21 15:54:51 1120

原创 Java 一对一,多对多生产者与消费者模型

  在进入正式话题之前,我们首先要了解两个方法。wait()方法// 暂停线程public final void wait() throws InterruptedException { wait(0);}notify()方法// 唤醒线程public final native void notify();  这两个方法在生产者消费者模型中应用...

2018-05-15 23:06:15 4446

原创 Java wait(),notify()与notifyAll()方法

1. wait() 方法  使线程暂停运行。使当前执行代码的线程进行等待。wait 是 Object类 的方法,该方法是用来将当前线程置入 预执行队列种,并且在 wait 所在的代码处停止执行,直到接到通知(notify)或被中断为止。wait 只能在同步方法或同步代码块中被调用。如果调用 wait 时,没有持有适当的锁,会抛出异常。wait 执行后,当前线程释放锁,线程与其他线程竞...

2018-05-13 21:17:31 1257

原创 Java 多线程同步方式synchronized与Lock

  在Java多线程处理数据时,我们经常会遇到出现异常数据的情况,先看下面的一段程序。// 模拟三个黄牛同时进行火车票的售卖class MyThread implements Runnable { // 车票总数 private int ticket = 10; @Override public void run() { // 当还有余票...

2018-05-12 17:53:26 1607

原创 Java 多线程全局锁与对象锁

  我们看一个例子:class Demo { public synchronized void test() { System.out.println("test方法开始执行,当前线程为:"+Thread.currentThread().getName()); try { Thread.sleep(1000); ...

2018-05-12 17:49:04 10788 5

原创 二叉树相关操作

二叉树是非常重要的一种数据结构,对于二叉树概念不是很清楚的可以参考 二叉树基本概念与遍历相关操作在这里,我们表示节点的方式为孩子表示法typedef struct TreeNode { // 树结点保存的数据 TreeNodeType data; // 该结点左子树 struct TreeNode* lchild; // 该结点右子...

2018-05-04 17:01:04 1195

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除