JAVASE
晚点喝可乐z
成功的道路并不拥挤,因为坚持的人不多。。。
展开
-
java中的其它 IO 流 —— 序列化流
Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该 对象的数据 、 对象的类型 和 对象中存储的属性 等信息。序列化流:(ObjectOutputStream)把对象以流的方式,写入到文件中保存,叫 写对象writeObject(p),也叫对象的序列化。继承关系java.io.ObjectOutputStream extends OutputStre...原创 2020-05-02 18:03:14 · 126 阅读 · 0 评论 -
java中的其它 IO 流 —— 转换流
首先要弄清楚两个概念:字符编码 字符集字符编码计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。按照某种规则,将字符存储到计算机中,称为编码 。反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为解码 。比如说,按照A规则存储,同样按照A规则解析,那么就能显示正确的文本f符号。反之,按照A规则存储,再按照B规则解析,...原创 2020-05-02 16:43:56 · 100 阅读 · 0 评论 -
java中的其它 IO 流 —— 缓存流
之前学习过一些基础的流-------------------java中的io流——字节流-------------------java中的io流——字符流今天学一些功能更强大的流,这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。缓冲流分类:字节缓冲流: BufferedInputStream , BufferedOut...原创 2020-05-01 16:32:53 · 133 阅读 · 0 评论 -
模拟Spring的实现 —— 注入
本篇博文并不是讲Spring的,而是模拟Spring,比如说以前笔者写过的包扫描工具,就可以在此时起到用场。Spring最基本的两个功能:IOC 、AOP。控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI)AOP为 Asp...原创 2020-02-16 23:12:18 · 160 阅读 · 0 评论 -
Map
上一篇讲完 collection接口,这篇我们来学习 map接口,map接口 也是一个很重要的容器。map接口 里面的内容都是 键值对,一个key对应一个value。key不可以重复、value可以重复。Map的key一遍都是String。 让我们看看API对此接口的描述:Map 接口提供三种collection 视图,允许以 键集、值集 或 键-值映射关系集 的形式查看某个映射的内容。映...原创 2020-02-13 19:55:02 · 274 阅读 · 0 评论 -
Iterator接口 —— 迭代器
Iterator接口Iterator 接口的三种常见方法:hasNext()next()remove()Iterator 接口:可以对 collection 进行迭代的迭代器。比如说笔者的前两篇博文------------------------ 集合Collection —— List------------------------ 集合Collection ——Set就完...原创 2020-02-10 21:54:51 · 134 阅读 · 0 评论 -
集合Collection ——Set
Set接口Set接口的特点:元素无序元素不可重复Set接口的方法有:boolean add(E e);boolean isEmpty();boolean remove(Object o);void clear();int size();Iterator iterator();Set接口的实现类—— HashSetHashSet的特点:HashSet的查找...原创 2020-02-09 21:48:43 · 130 阅读 · 0 评论 -
集合Collection —— List
Collection接口的继承体系如下:在我们以后的学习中,常见的实现类和接口如下:我们这篇博客主要用来讲解 java.util.ListList接口List接口的特点:元素有序每个元素都存在一个索引元素可以重复List接口的方法有:boolean add(E e);boolean isEmpty();boolean remove(Object o);void...原创 2020-02-09 13:59:11 · 129 阅读 · 0 评论 -
多态
让我们学习多态前,先来了解一下多态的三个必要条件:多态的三个必要条件要有继承关系要有覆盖(方法重写) 其实没有也是可以的,但是如果没有这个就没有意义要有父类引用指向子类对象 形如: 父 f = new 子();为了帮助我们理解多态的三个必要条件,来看一个例子首先给出一个 Animal.java 类public class Animal{ public void ea...原创 2020-02-07 22:15:17 · 137 阅读 · 0 评论 -
包扫描
我们这篇博文要做的事,就是将com.mec.study包下的类,都扫描显示出来。写一个 Scanner.java类 用于实现扫描import java.io.File;import java.io.IOException;import java.net.URISyntaxException;import java.net.URL;import java.util.Enumerati...原创 2020-02-06 22:41:10 · 229 阅读 · 0 评论 -
注解—— java.lang.annotation.Annotation
大家看到这个标题,可能会感觉很熟悉,觉得似曾相识!!!但是请注意,这是注解,不是注释!!!让我们来区分一下两者给程序员看的是注释(单行注释、多行注释、doc注释)Annotation 其实就是代码里的特殊标记, 它用于替代配置文件,也就是说,传统方式通过配置文件告诉类如何运行,有了注解技术后,开发人员可以通过注解告诉类如何运行。在Java技术里注解的典型应用是:可以通过反射技术去得到类里面...原创 2020-02-04 18:57:23 · 2103 阅读 · 0 评论 -
侦听者模式
之前我们介绍过一种直接对抽象类、接口进行实例化的方法,这种方法将产生一种叫做“匿名内部类"的类,并直接实现抽象类或者接口要求实现的抽象方法,这里就要用到这种手段。本篇博文用来讲解java中的一个设计模式:侦听者模式。通过这个模式,我们可以通过生成匿名内部类,来直接生成并且使用接口的对象。如果能够直接使用的话,我们在别的方法中要调用一个接口的方法时就非常容易了。首先给出一个接口public i...原创 2020-01-16 12:09:57 · 605 阅读 · 0 评论 -
异常Exception类 + Complex类
java内部已经定义了很多异常,这些异常分为两大类:运行时异常类 和 非运行时异常类。它们的继承结构如下图:对于异常,有两种处理方式(能处理处理):try {可能出现问题的代码 ;} catch(异常名 变量名) {针对问题的处理 ;} finally {释放资源;}抛出不仅如此,我们还可以根据自己的需要,生成自己的异常类,这极大地扩展了异常的应用范围,方便了软件开发。我们...原创 2020-01-15 15:49:47 · 577 阅读 · 1 评论 -
接口
关于接口有几点注意的接口格式 interface 接口名 {}实现接口的类 class 类名 implements 接口名 {}接口实例化的方式:通过实现接口的类,来实例化这个接口(动态多态)接口的子类a、抽象类b、具体类(实现接口中的所有抽象方法)接口里面的成员,只能是public static final的(接口中的mem虽然我们并没有public static fina...原创 2020-01-15 10:22:20 · 78 阅读 · 0 评论 -
抽象类
对于抽象类有几点需要注意的抽象类 和 抽象方法 用abstract关键字修饰抽象类格式: abstract class 类名 {}抽象方法格式:public abstract double area();抽象类不一定有抽象方法,有抽象方法的类一定是抽象类。抽象类重为什么有构造方法?用于子类访问父类数据时的初始化抽象类不能直接实例化,但是可以由 继承它的子类 实例化。抽象类的子类...原创 2020-01-15 01:06:05 · 309 阅读 · 0 评论 -
数的局部变量、全局变量、形参和实参的关系
函数的局部变量、全局变量、形参和实参的关系,要涉及到内存中的一些概念:1、系统堆栈空间2、系统堆空间3、代码区和数据区堆栈的大致概念和特点:堆栈在OS中的作用(在函数调用关系中的作用):main( ) -> fun1( ) -> fun2( ) -> fun3( ) -> fun4( )当fun4函数结束执行后,应该返回哪个函数?一定是fun3如图,堆栈就...原创 2019-12-26 23:08:54 · 1069 阅读 · 0 评论 -
java中的io流—— 字符流
字节流和字符流的区别:(1)字节流的处理单位是一个字节,字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而形成的。(2)字节流在操作时本身不会用到缓冲区,是文件本身直接操作的;而字符流在操作时使用了缓冲区,通过缓冲区再操作文件。(3)字节流和字符流之间是通过转换流进行转换的(InputStreamReader类是从字节输入流获得数据,然后转换为字符数据交给程序使用...原创 2019-12-25 20:35:48 · 228 阅读 · 0 评论 -
java中的io流——字节流
io流概述Java中对数据的操作都是通过流的方式。Java的IO流是实现输入/输出的基础,它可以方便地实现数据的输入/输出操作。Java用于操作流的类都在io包中。流的分类流按照处理数据类型的单位的不同可以分为字节流和字符流。流按照流向数据流向的不同可以分为输入流和输出流。字节流:FileInputStream和FileOutputStream是java中可以按照最小字节单位读...原创 2019-12-23 19:43:12 · 230 阅读 · 0 评论 -
内部类
在一个类中,可以定义其它类,这些类称为内部类。内部类所在的类称为“外部类”。内部类可以直接引用外部类的成员和方法,无需收到权限修饰符的限制。来看个例子:public class OuterClass{ private int privateMember; protected int protectedMember; public int publicMember;...原创 2019-12-20 01:44:57 · 130 阅读 · 0 评论 -
XMLParser解析工具
工具思想在java学习中尤为重要。由于工具的存在,我们才能把心思放在真正的代码编写中,而不是被那些大量重复的代码搞的晕头转向的。要知道java的终极目标是代码复用!!!那让我们以上上篇博文为例,将其变成一个xml解析工具。这就是我们所给出的xml解析工具import java.io.IOException;import java.io.InputStream;import javax....原创 2019-12-08 01:20:44 · 1090 阅读 · 0 评论 -
XML的系统学习
xml的标签是可以自己随意定义的,但是有其自己的命名规范(比如不能以数字开头等等等)。xml文档必须有根元素,必须正确的嵌套。在 XML 中,一些字符拥有特殊的意义。如果你把字符 "<" 放在 XML 元素中会发生错误,这是因为解析器会把它当作新元素的开始。所以需要用实体去代替这些字符。< 小于> 大于& 和号'...原创 2019-12-05 22:03:17 · 99 阅读 · 0 评论 -
初识 XML
什么是xml文件?笔者认为语言描述往往是晦涩的,有时候非但不能达到某种效果,反而令人生畏。不如我们先直接给出一个xml文件。xml文件有两种书写方式(用标签和用属性),这里我们推荐用属性。对xml文件的解析可以实现对xml文件的增删改查,这篇博文只实现了对xml的”查“功能。<?xml version="1.0" encoding="UTF-8"?><students&g...原创 2019-12-03 19:42:38 · 124 阅读 · 0 评论 -
网络编程(最终版)
认真看过本人上一篇博文的小伙伴可能会发现,我们的程序是有bug的。比如没有将命令和message分开,假如客户端真的想发送byebye,而不是想结束与服务器的连接呢???还有server和client中的很多代码是大同小异的,我们可以将这部分单独分装成一个类,代码复用啊!!!首先给一个抽象类import java.io.DataInputStream;import java.io.Data...原创 2019-12-02 17:08:07 · 168 阅读 · 0 评论 -
网络编程(一对多)
上一篇博文我们只是探讨了服务器与客户端之间一对一的通信,而且还是一次性的,这具有很大的局限性。所以我们这篇博文会讲解关于一对多,即一个服务器对多个客户端。这样就需要用线程实现了,所以还是要学会灵活运用。我们希望的过程是这样的:当客户端连接服务器后,将用户输入的内容,发送到服务器;服务器得到客户端内容后,简单打包(用一对中括号),并返回给客户端;上述操作直到客户端发出byebye这样的字...原创 2019-11-30 21:52:39 · 320 阅读 · 0 评论 -
网络编程
实现一对一、单次通信所谓“一对一”,就是一个服务器只连接一个客户端。在这个基础上,实现客户端与服务器的“一次性通信”。为方便我们改写端口号,给出一个接口public interface INet{ int DEFAULT_PORT=54188;}给出一个simpleServer类import java.io.DataInputStream;import java.io.D...原创 2019-11-30 20:50:38 · 86 阅读 · 0 评论 -
线程的学习(3)——生产者消费者
首先给出一个接口:ICommonObject,由此派生出消费者和生产者public interface ICommonObject{ Object lock=new Object(); List<Integer> numPool=new ArrayList<>(); default void setNum(int num) {...原创 2019-11-28 22:47:21 · 186 阅读 · 0 评论 -
线程的学习(2)——sleep、join和synchronized
首先我们提供一个MyFirstThread类:public class MyFirstThread extends Thread{ public MyFirstThread() { System.out.println("准备创建线程:"); this.start();// 只要我们想运行一个线程就必须重载start()方法 S...原创 2019-11-28 20:37:31 · 83 阅读 · 0 评论 -
线程的学习(1)——Thread和Runnable
什么是线程?一个应用程序的运行就可以被看做是一个进程,线程是进程内部的一条执行序列(执行流), 每个进程至少有一条执行序列:main 的执行体。 进程可以通过线程库创建N条线程, 这些新创建的线程称之为函数线程, main函数所代表的线程为主线程 。要使读者能更好的理解后面的代码,在脑子里形成一个逻辑关系,接下来这个线程状态转换图就显得尤为重要。线程的开发继承Thread类开发线程c...原创 2019-11-27 14:57:40 · 96 阅读 · 0 评论 -
反射机制(3)——newInstance和反射包
newInstance——使用class对象创建类的对象try{ Student student1=student.newInstance(); student1.setName("honey"); System.out.println(student1.getName());} catch(InstantiationException e){ e.printS...原创 2019-11-26 19:07:40 · 132 阅读 · 0 评论 -
反射机制(2)——Method和Field
ageField.setAccessible(true);原创 2019-11-26 18:47:00 · 181 阅读 · 0 评论 -
反射机构(1)——class对象
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。在Java中,每个class都有一个相应的Class对象。也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象,用于表示这个类的类型信息。那么如何...原创 2019-11-24 21:11:12 · 133 阅读 · 0 评论 -
数据库编程(二)
关于上篇博文,依然是有需要改进的地方,比如它不能实现代码复用。在这里我们可以试着采用MVC设计模式。采用MVC设计模式有以下优点:耦合性低、重用性高、生命周期成本低(MVC使开发和维护用户接口的技术含量降低)、部署快、可维护性高、有利于软件工程化管理以下程序是用来判断数据库表中学生的性别,并输出女生的相关信息第一步:完成model层package idv.honey.model;pub...原创 2019-11-23 01:33:41 · 111 阅读 · 0 评论 -
数据库编程
关于数据库编程,以本人的理解,就是通过编程从数据库中取数据。那么第一步便是在工程根目录底下新建一个bin包,然后把数据库驱动包放进去(根据你自己电脑上安装的是MySQL还是oracle什么的,下载相应的jar包,然后构建路径,直到看见一个小奶瓶)这是我们创建的数据库表创建的数据库名为javase,表名为test接下来我们创建一个Test类,用来实现取出表里面的数据import java...原创 2019-11-22 20:02:08 · 753 阅读 · 0 评论 -
初识反射机制
先看一个小例子,这里应用了上一篇博文里的properties的工具类propertiesParser我要开始啦首先写一个properties配置文件现在给出一个能够应用反射机制的类:Test.java:public class Test{ public static void main(String[] args) { propertiesPars...原创 2019-11-19 21:37:26 · 161 阅读 · 0 评论 -
properties解析
properties文件是键值对组成的,那如何对这类文件进行读取首先给出需要解析的properties文件:(键值对也可以用”:“,”空格“表示)现在给出一个test类,对上面的properties文件进行解析在这里我们希望可以做出一个解析properties文件的工具(propertiesParser):...原创 2019-11-19 14:09:59 · 518 阅读 · 0 评论