![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java学习
Demonwuwen
不知不觉过了三年,需要在一个方向深入下去了,加油学习!不负年华!
展开
-
Java学习笔记——Statement数据库操作接口
当获取了java.sql.Connection接口对象之后,那么其核心目的一定不是只为了连接,而是为了进行数据库的操作,而进行数据库的开发操作应该使用标准SQL语句来完成,所以需要有一个SQL的执行器,而执行器就可以利用Statement接口完成。Statement接口简介java.sql.Statement是JDBC之中提供的数据库的操作接口,利用其可以实现数据的更新与查询的处理操作,该接口定义如下:public interface Statement extends Wrapper,AutoClo原创 2020-09-26 16:31:39 · 657 阅读 · 0 评论 -
Java学习基础——Java数据库编程基础操作
对于现在的开发几乎所有的项目都是围绕着数据库展开的。JDBC(Java database connectivity)JDBC本质上来讲属于一种服务。服务的特征,按照指定的套路来进行操作。在Java里面专门为JDBC提供有一个模块(java.sql),里面的核心开发包就说java.sql。在JDBC里面核心组成就说DriverManager类以及若干接口(Connection、Statement、PreparedStatement、ResutSet)。对于JDBC的程序方位也分为如下四种形式:JD原创 2020-09-25 15:45:18 · 238 阅读 · 0 评论 -
Java学习笔记——网络编程
所谓的网络编程指的就说多台主机之间的数据通讯操作。网络编程简介网络的核心定义在于:有两台以上的电脑就成为网络。网络连接的目的不仅仅是为了进行电脑的串联,更多的情况下是为了彼此间的数据通讯,包括现在所谓的网络游戏本质上还是网络通讯的问题,而在通讯的实现上就产生了一系列的处理协议:IP、TCP、UDP等等。网络编程实现的就说一个数据的通讯操作,只不过这个通讯操作需要分为客户端与服务器端。于是针对网络程序的开发就有了两种模型:C/S(Client/Server、客户端与服务器端):要开发出两套程序。一原创 2020-09-24 19:59:10 · 87 阅读 · 0 评论 -
Java学习笔记——Stream数据流
Stream基本操作进入到了大数据时代,类集里面也支持有数据的流式恩熙处理操作,为此专门提供了Stream接口,同时Collection接口里面也提供有为此接口实例化的主方法。Stream主要的功能是进行数据的分析处理,同时主要是针对与集合中的数据进行分析操作package demo;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.stream.St原创 2020-09-23 14:11:23 · 166 阅读 · 0 评论 -
Java学习笔记——集合工具类
Stack类栈的特点是先进后出。在Java程序里面使用Stack来描述栈的操作,定义如下:public class Stack<E> extends Vector<E>采用如下两个方法:入栈:public E push(E item);出栈:public E pop()。【范例】实现栈的操作package demo;import java.util.Stack;public class JavaAPIDemo { public static void m原创 2020-09-23 00:27:24 · 125 阅读 · 0 评论 -
Java学习笔记——Map集合
在开发里面:Collection集合保存数据的目的是为了输出,Map集合保存数据的目的是为了进行key的查找。1、Map接口简介Map接口是进行二元偶对象保存的最大父接口,该接口定义如下:public interface Map<K, V>在进行接口对象实例化的时候需要设计Key与Value的类型。3个重点操作方法:向集合之中保存数据:public V put(K key, V value)根据key查询数据:public V get(Object key)将Map集合转为Set集原创 2020-09-22 23:34:37 · 80 阅读 · 0 评论 -
Java学习笔记——集合输出
对于操作而言,一共有四种输出形式:Iterator迭代输出、ListIterator双向迭代输出、Eumeration枚举输出、foreach输出.文档地址:https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/util/Iterator.html1、Iterator迭代输出获取Iterator接口对象:public Iterator<T> iterator();在Iterator接口里面有如下定义:判断是原创 2020-09-22 18:23:54 · 214 阅读 · 0 评论 -
Java学习笔记——set集合
Set集合最大的特点就是不允许保存重复元素,其也是Collection子接口。Set接口简介Set集合定义如下:public interface Set<E> extends Collection<E>Set集合并不像List集合那样扩充了许多的新方法,所以无法使用...原创 2020-09-22 17:13:57 · 219 阅读 · 0 评论 -
Java学习笔记——类集框架简介
Java类集框架类集指的就是一套动态对象数组的实现方案,在实际开发之中没有任何一项开发可以离开数组,但是传统的数组实现起来非常的繁琐。而且长度是其致命伤,正是因为长度的问题,传统的数组是不能大范围使用的,所以最初就只能依靠一些数据结构来实现动态的数组处理,其中最为重要的两个结构就是:链表、树。但是面对这些数据结构的实现,又不得不面对以下问题:数据结构代码实现困难,对于一般的开发者是无法使用的;对于链表或二叉树当进行更新处理的时候是非常麻烦的;对于链表或二叉树还需要尽可能保证其操作的性能。正是因为原创 2020-09-22 13:24:12 · 116 阅读 · 0 评论 -
Java学习笔记——反射编程与Annotation
获取Annotation信息在进行类或放啊定义的时候都可以使用一些列Annotation进行声明,于是如果要想获取这些Annotation信息,就可以直接通过反射来完成。在java.lang.reflect里面有一个AccessibleObject类,在本类中提供有获取Annotation类的方法:获取全部Annotation:public Annotation[] getAnnotations()获取指定Annotation:public <T extends Annotation>原创 2020-09-21 11:44:56 · 106 阅读 · 0 评论 -
Java学习笔记——反射与代理设计模式
传统代理设计模式的弊端所有的代理设计模式如果按照设计要求来讲, 必须是基于接口的设计,需要首先定义出核心接口的组成。【范例】代理设计package demo;public class JavaAPIDemo { public static void main(String[] args) throws Exception { IMessage msg = new MessageProxy(new MessageReal()); msg.send(); }}interface IMe原创 2020-09-19 19:31:28 · 95 阅读 · 0 评论 -
Java学习笔记——ClassLoader类加载器
在JVM里面可以根据类加载器而后进行指定路径中类的加载,也就是说找到了类的加载器就意味着找到了类的来源系统类的加载器如果说现在要想获得类的加载器,那么一定要同ClassLoader来获取,而要想获取Classloader类对象,则必须用Class类(反射的根源)实现,方法:public ClassLoader getClassLoader();自定义加载器自定义的类加载器其加载顺序是在所有系统类加载器的最后。系统类中的类加载器都是根据CLASSPATH路径进行加载的,而如果有了自定义加载器,就可以原创 2020-09-19 17:02:06 · 80 阅读 · 0 评论 -
Java学习笔记——属性自动设置(单级和级联)
属性自动设置属性设置建议采用字符串的形式来描述对应的类型。1、采用“属性:内容|属性:内容|”的形式来为简单Java类中的属性初始化。2、类设计的基本结构:应该由一个专门的ClassInstanceFactory类负责所有的反射处理,即:接收反射对象与要设置的反射内容,同时可以获取指定类的实例化对象3、设计的基本结构:package demo;public class JavaAPIDemo { public static void main(String[] args) throws Ex原创 2020-09-19 13:23:52 · 571 阅读 · 0 评论 -
Java学习笔记——反射与类操作
1.获取类的基本信息一个类的基本信息主要包括类所在的包名称、父类的定义、父接口的定义。【范例】定义一个程序类package demo.service;public interface IMessageService { public void send();}package demo.service;public interface IChannelService { public boolean connect();}package demo.abs;public ab原创 2020-09-18 11:53:40 · 143 阅读 · 0 评论 -
Java学习笔记——反射机制
反射机制简介Java语言之所以会有如此众多的开源技术支撑,很大一部分是来自于Java最大的特征——反射机制。所有的技术实现的目标只有一点:重用性。原创 2020-09-11 02:10:17 · 179 阅读 · 0 评论 -
JavaIO编程实例——投票选举
(1)功能描述有一个班采用民主投票方法推选班长,班长候选人共4位,每个姓名及代号分别位“张三 1;李四 2;王五3;赵六 4”。程序操作员将每张选票上所填的代号(1,2,3,4)循环输入电脑,输入数字0结束输入,然后将所有候选人的得票情况显示出来,并显示最终结果。(2)具体要求要求用面向对象方法,编写学生类Student,将候选人姓名、代号和票数保存道类Student中,并实现相应的setter getter方法。输入数据前,显示各位候选人的代号及姓名。循环执行接收键盘输入的班长候选人代号,直到原创 2020-09-09 23:12:45 · 1708 阅读 · 0 评论 -
JavaIO编程案例——用户登录
完成系统登陆程序,从命令行输入用户名和密码,如果没有输入用户名和密码,则提示输入用户名和密码;如果输入了用户名但是没有输入密码,则提示用户输入密码,然后判断用户名是否是mldn,密码是否是hello,如果正却,则提示登陆成功;如果错误显示登陆失败,用户再次输入用户名和密码,连续3此输入错误后系统退出。对于用户名和密码的使用可以采用“用户名/密码”的形式完成,如果发现没有“/”表示没有输入密码。1、定义用户操作接口package demo.service;public interface IUser原创 2020-09-09 21:40:33 · 208 阅读 · 0 评论 -
JavaIO编程实例——数据排序深入处理
将排序处理的内容进行扩展,可以将全部输入的信息保存在文件中,还可以添加信息,并且可以现实全部数据。如果此时进行内容的保存,那么首先一定要确认好所有输入数据的保存位置,所有的数据之间如果要想沿用之前的设计结构,则数据文件里面的保存应该做到格式统一,即:“姓名:成绩|”的形式进行存储,而在进行数据添加的时候可以添加两类数据:“单独的内容”、“一组内容”。暂时不考虑数据过大的问题;...原创 2020-09-08 21:05:15 · 284 阅读 · 0 评论 -
JavaIO编程实例——数据排序处理
从键盘输入以下的数据:“TOM:89|JERRY:990|TONY:95”,数据格式为“姓名:成绩|姓名:成绩”。输入的内容按成绩进行排序,并将排序结果按照成绩由高到低排序。对于排序的处理肯定使用Comparable接口完成,同时利用Arrays类来处理,这里面唯一不同的地方就在于此时数据的现实需要通过键盘输入。1 、建立Student的程序类,并进行排序规则的配置。package demo.vo;public class Student implements Comparable<Stud原创 2020-09-07 17:15:31 · 182 阅读 · 0 评论 -
JavaIO编程实例——文件保存
从键盘输入文件的内容和要保存的文件名称,然后根据输入的名称创建文件,并将内容保存到文件中。在本程序里面只要求开发者保存的是文件名称而并没有设置文件路径,那么对于文件路径就应该程序启动之前就准备好。1、定义一个文件接口package demo.service;public interface FileService { /** * 定义文件保存方法 * @return 保存成功返回true。失败返回fase。 */ public boolean save();}2、在InputU原创 2020-09-07 00:27:33 · 689 阅读 · 0 评论 -
JavaIO编程实例——数字大小比较
编写Java程序,输入3个整数,并求出3个整数的最大值和最小值。如果要想进行数字的输入处理,那么应该保证输入错误的时候可以中相信输入,那么为了可以达到重用的设计,应该准备一个单独的输入处理类。1.定义一个输入工具类:package demo;import java.util.Scanner;public class InputUtil { private InputUtil() {} /** * 实现键盘接收数字的操作 * @param prompt 提示信息 * @return原创 2020-09-04 01:38:13 · 833 阅读 · 0 评论 -
Java学习笔记——对象序列化
序列化简介所谓的对象序列化指的是将内存中保存的对象以二进制数据流的形式进行处理,可以实现对象的保存或者网络传输。然而并不是所有的对象都可以被序列化,在Java里面有一个强制性要求:如果要序列化的对象,那么对象所在的类一定要实现java.io.Serializable父接口,作为序列化的标记,这个接口没有任何的方法,因为它描述的是一种类的能力。序列化与反序列化有了序列化的支持类之后如果要想实现序列化与反序列化的操作可以利用以下两个类完成:序列化:ObjectOutputStream定义类:p原创 2020-09-03 14:26:32 · 133 阅读 · 0 评论 -
Java学习笔记——输入与输出支持
1.打印流如果想要通过程序实现内容的输出,核心的本质一定要依靠OutputStream类完成,但是OutputStream类有一个缺点,,这个类的输出操作功能有限:public void write(byte[] b) throws IOException,所有的数据一定要转为字节数组才能输出。【范例】打印流设计思想:package demo;import java.io.File;import java.io.FileOutputStream;import java.io.IOExcept原创 2020-08-27 17:38:03 · 102 阅读 · 0 评论 -
Java IO流详解——RandomAccessFile
一、RandomAccessFile简介RandomAccessFile既可以读取文件内容,也可以向文件输出数据。同时,RandomAccessFile支持“随机访问”的方式,程序快可以直接跳转到文件的任意地方来读写数据。由于RandomAccessFile可以自由访问文件的任意位置,所以如果需要访问文件的部分内容,而不是把文件从头读到尾,使用RandomAccessFile将是更好的选择。与OutputStream、Writer等输出流不同的是,RandomAccessFile允许自由定义文件记录指转载 2020-08-26 23:21:55 · 381 阅读 · 0 评论 -
Java学习笔记——`IO`深入操作 字符编码与管道
1.字符编码常用的编码有如下几种:GBK/GBK2:国标编码,可以描述中文信息,其中GB2312只描述简体中文,而GBK包含有简体和繁体中文;ISO8859-1:国际通用编码,可以描述所有的字母信息,如果是象形文字则需要进行编码处理;UNICODE编码:采用十六进制的方式存储,可以描述所有的文字信息;UTF编码:象形文字部分使用十六进制编码,而普通的字母采用的是ISO8859-1编码,它的优势在于快速传输,节约带宽,也就成为了开发之中首选编码,主要使用“UTF-8”编码。如果要想知道当前系统原创 2020-08-26 10:16:18 · 117 阅读 · 0 评论 -
Java学习笔记——文件拷贝综合实战
需求:操作系统里面有一个copy命令,这个命令的主要功能是可以实现文件的拷贝处理,现要求模拟这个命令,通过初始化参数输入拷贝的源文件路径与拷贝的目标路径实现文件的拷贝处理。需求分析需要实现文件的拷贝操作,有可能拷贝各种类型文件,所以使用字节流而不是字符流。要考虑到大文件的拷贝问题。实现方案两种方案方案一:使用InputStream将全部要拷贝的内容直接读取到程序里面,而后一次性输出到目标文件。如果拷贝的文件很大,程序就死了方案二:采用部份拷贝,读取一部分输出一部分,现采用第二种原创 2020-08-24 13:20:33 · 237 阅读 · 0 评论 -
Java学习笔记——字节流与字符流
流的基本概念Java中,File类只能够操作文件本身,而不能够操作文件的内容,在实际开发中IO操作的核心意义在于:输入和输出操作。输入与输出:对于服务器或者客户端而言,输入与输出操作实质上传递的就是一种数据流的处理形式。所谓的数据流指的就是字节数据。对于这种流的处理形式在java.io包里面提供有两类支持:字节处理流:OutputStream(输出字节流)、InputStream(输入字节流);字符处理流:Writer(输出字符流)、Reader(输入字符流)。所有的流操作都应该采用如下原创 2020-08-24 01:10:54 · 132 阅读 · 0 评论 -
Java学习笔记——文件操作
文件操作在Java语言里面提供有对于文件操作系统操作的支持,在java.io.File类中进行了定义。在整个java.io包里面,File类是唯一一个雨文件本身操作有关(创建、删除、重命名等)的类。要有完整的路径,而后才可以调用相应的方法处理。 File类是Comparable接口的子类所以File类的对象是可以进行排序处理的。进行File类处理的时候需要设置访问路径,对于路径的配置主要通过File类的构造方法进行处理: - 构造方法:public File(String pathname),设置原创 2020-08-22 01:18:32 · 277 阅读 · 0 评论 -
Java学习笔记——案例:学生信息比较
案例:按照“姓名:年龄:成绩|姓名:年龄:成绩”的格式定义字符串“张三:21:98|李四:22:89|王五:20:70|赵六:30:98”,要求每组值分别保存在Student对象之中,并对这些对象进行排序,排序的原则为:按照成绩由高到底排序,如果成绩相等,按照年龄由低到高排序。最典型的做法是直接利用比较器来完成处理。代码如下:package demo;import java.util.Arrays;public class StudentCompare { public static vo原创 2020-08-21 03:03:05 · 620 阅读 · 0 评论 -
Java学习笔记——案例:国家代码
案例分析:编写程序,实现国际化应用,从命令行输入国家的代号,中国1,美国2,然后根据不同的选项显示不同的资源文件信息。通过Locale类的对象来指定区域,随后利用ResoourceBundle类加载资源。定义中文资源文件:Messages_zh_CN.properties,内容:info = 欢迎访问!定义英文资源文件:Messages_en_US.properties,内容:info = Welcome!编写代码如下:package demo;import java.util.Loc原创 2020-08-21 02:33:26 · 903 阅读 · 0 评论 -
Java学习笔记——Email地址验证
案例分析:输入一个Email地址,然后使用正则表达式验证该Email地址是否正确。代码如下package demo;public class JavaAPIDemo { public static void main(String[] args) { if (args.length != 1) {// 输入有一个参数 System.out.println("程序执行错误,没有输入初始化参数,正确格式为 java javaAPIDemo Email地址"); System.exi原创 2020-08-20 22:49:12 · 1193 阅读 · 0 评论 -
Java学习笔记——StringBuffer的使用
案例:定义一个StringBuffer类对象,然后通过append()方法向对象中添加26个小写字母,要求每次只添加一次,共添加26次,然后按照逆序的方式输出,并且可以删除前5个字符。package demo;public class JavaAPIDemo { public static void main(String[] args) { StringBuffer buf = new StringBuffer(); for (int x='a'; x<='z'; x++) {原创 2020-08-20 18:43:18 · 283 阅读 · 0 评论 -
Java学习笔记——红黑树
红黑树本质上是一种二叉查找树,但它在二叉查找树的基础设额外添加了一个标记(颜色),同时具有一定的规则。这些规则使红黑树保证了一种平衡,插入、删除、查找最坏的时间复杂度都为O(logn)O(logn)O(logn)。红黑树是在1972年由Rudolf Bayer发明,当时被称为平衡树(symmetric binary B-trees)。后来在1978年被Leo J.Guibas和Robert Sedgewick修改为如今的“红黑树”。红黑树的本质就是在节点上追加了一个表示颜色的操作信息。enum Col原创 2020-08-20 18:29:49 · 102 阅读 · 0 评论 -
Java学习笔记——二叉树结构实现
二叉树实现基本原理:取第一个数据为保存的根节点,小于等于根节点的数据要放在节点的左子树,大于节点的数据要放在节点的右子树。如果要进数据检索,就需要进行节点的判断,时间复杂度是O(logn)。数据查询三种形式:前序遍历(根-左-右)、中序遍历(左-根-右)、后续遍历(左-右-根)。以中序遍历为例,遍历顺序:10、20、25、30、38、50、80、100.二叉树的基础实现实现二叉树的处理之中最为关键性的问题在于数据的保存,而且数据由于牵扯到对象比较的问题,那么一定要有比较器的支持,而比较器首选的一定原创 2020-08-19 01:50:56 · 107 阅读 · 0 评论 -
Java学习笔记——比较器
所谓的比较器指的就是进行大小关系的确定判断。Java里面为了统一比较规则的定义,所以提供有比较器的接口:Comparable接口。Comparable比较器如果要实现对象的比较肯定需要有比较气来指定比较的规则,而比较的规则就通过Comparable来实现。【范例】实现自定义对象数组排序操作package demo;import java.util.Arrays;public class JavaDemoComparable { public static void main(String原创 2020-08-18 23:32:18 · 150 阅读 · 0 评论 -
Java学习笔记——开发支持类库
UUID类UUID是一种生成无重复字符串的一种程序类,这种程序类的主要功能是根据时间戳实现一个自动的无重复的字符串定义。一般在获取UUID的时候往往都是随机生成一个内容,所以可以通过如下方式获取对象:获取UUID对象:public static UUDI randomUUID();根据字符串获取UUID内容:public static UUID fromString(String name);import java.util.UUID;public class JavaDemo { pu原创 2020-08-18 04:51:31 · 116 阅读 · 0 评论 -
Java学习笔记——实现国际化程序开发 附:不同的国家/地区与语言缩写代码
Locale类要想实现国家化程序开发:首先需要解决的是不同国家用户的区域和语言编码问题,在java.util包里面提供有一个专门描述区域和语言编码的类,Local类,主要使用两个构造方法进行实例化:构造方法:public Locale(String language);构造方法:public Locale(String language, String country);【范例】实例化Locale类对象import java.util.Locale;public class JavaDemo原创 2020-08-17 20:12:39 · 758 阅读 · 0 评论 -
Java学习笔记——正则表达式
String是一个非常万能的类型,所以在开发之中,只要是用户输入的信息,基本都可以用String表示。在向其它数据类型转化的时候,为了保证抓换的正确性,往往需要对其进行一些复杂的验证处理。如果只是单纯的依靠String类的方法是比较麻烦的。1. 认识正则表达式判断字符串是否由数字所组成,如果是数字则变为数字进行乘法计算:public class JavaAPIDemo { public static void main(String[] args) throws Exception { Stri原创 2020-08-17 12:06:22 · 125 阅读 · 0 评论 -
Java学习笔记——Date日期处理
在Java里面提供有一个java.util.Date的类,如果直接实例化就可以直接获取当前日期时间。import java.util.Date;public class JavaAPIDemo { public static void main(String[] args) throws Exception { Date date = new Date(); System.out.println(date); }}#Sat Aug 15 23:25:11 CST 2020Date类中原创 2020-08-16 10:22:17 · 184 阅读 · 0 评论 -
Java学习笔记——数字操作类
Math数学计算类Math类的主要功能是进行数学计算的操作类,提供有基础的计算公式,这个类的方法被私有化了,所有的方法都是static型的方法,即:这些方法都可以通过类名称直接调用。【范例】:public class JavaAPIDemo { public static void main(String[] args) throws Exception { System.out.println(Math.abs(-110)); System.out.println(Math.max(10,原创 2020-08-15 23:20:03 · 131 阅读 · 0 评论