Java
文章平均质量分 65
关于Java的学习、知识点和小技巧
Whale-Song
今天 你努力了不管是否有收获 至少你赢了坐享其成的你。
展开
-
小程序---金额转换
这是课本里面的一个例题,我进行了优化写出了这个较为满意的程序, 有不好的地方希望多多指教。import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.原创 2017-10-29 10:35:30 · 3705 阅读 · 0 评论 -
小程序---计算器
最近各大OJ都进不去,感觉没事情做 于是花了2天的时间写了一个简易计算器小程序 该计算器实现了简单的+-*/运算,而且添加了鼠标监听和键盘监听,练一练布局管理和监听,感觉挺不错的。import java.awt.BorderLayout;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Font;import原创 2017-10-23 19:59:09 · 918 阅读 · 0 评论 -
小程序---信息添加
//package 课后练习.GUI.Swing;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;impo原创 2017-10-29 12:10:18 · 326 阅读 · 0 评论 -
小游戏---贪吃蛇
这几天一直在写贪吃蛇小游戏,ACM都没时间去做,但是收获还是很大的。程序中包函了线程、监听、界面的应用,最大的困难的如何实现动画,经过反复修改,感觉采用线程的方法是最好控制的。动画是通过JPanel.updateUI()函数来重画,每各一定时间重画一下,就形成了动画效果。很假O(∩_∩)O哈哈~….//package 课后练习.d1104;import java.awt.Color;import原创 2017-11-05 18:02:14 · 212 阅读 · 0 评论 -
Web---XML---③Java解析XML---DOM(官方---第二方)
DOM-Document Object Model-文档对像模型。是w3c组织处理xml的一种方式。•特点: •一次将所有数据全部加载到内存中。 •对xml文档中的每一个节点都当成一个Node对像处理。包括元素、文本、属性。 •org.w3c.dom包中的Document,Element,Node。 •非常方便进行修改。 •已经集成在了JDK...原创 2018-08-21 11:28:37 · 181 阅读 · 0 评论 -
Web---XML---④Java解析XML---dom4j(第三方工具)
Dom4j是一个开源、灵活的XML API。目前很多开源框架如struts,hibernate都使用dom4j做为解析其xml的工具。支持文档的读写功能和Xpath快速查询操作。准备DOM4j:包:dom4j.x.jar包结构:org.dom4j类•org.dom4j.io.SAXReader – xml文档解析器•org.dom4j.Document、Ele...原创 2018-08-23 10:59:16 · 450 阅读 · 0 评论 -
Java---加密---MD5
MD5MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2、MD3和MD4发展而来。MD5算法的使用不需要支付任何版权费用。MD5功能: 输入任意长度的信息,经过处理,输出为128位的信息(数字指纹); 不同的输入得到的不同的结果(唯一性); 根据128位的输出结果不可能反推出输入的信息(不可逆); MD5...原创 2018-08-24 08:43:24 · 186 阅读 · 0 评论 -
Web---XML---⑤Java解析XML---SAX和StAX(官方---第二方)
SAX解析Simple Api for XML。SAX在解析文档时使用的是边读取边解析的方式,而不是一次性的将文档全部装入内存中。所以它的读取速度很快,占用很少的内存。仅向前,不能任意的读取一个节点。也不能修改XML文件。SAX读取一个XML文档的过程:SAX解析器:SAXParserFactory定义工厂 API,使应用程序能够配置和获取基于 SAX 的解析...原创 2018-08-25 09:53:31 · 235 阅读 · 0 评论 -
二叉树---遍历
二叉树的广度优先遍历、深度优先遍历的递归和非递归实现方式先序、中序、后序遍历代码演示:二叉树接口:package cn.hncu.dataStructure.binTree;/** * 二叉树接口 * 可以有不同的实现类,每个类可以使用不同的存储结构,比如顺序结构、链式结构 * */public interface BinaryTree { /** * 是否...原创 2018-08-25 14:21:22 · 177 阅读 · 0 评论 -
Java---类反射---ClassLoader(类加载器)
Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类: BootStrap, ExtClassLoader, AppClassLoader 类加载器也是Java类,因为其他是java类的类加载器本身也要被类加载器加载,显然必须有第一个类加载器不是java类,这正是BootStrap。 Java虚拟机中的所有类装载器采用具有父子关系...原创 2018-05-21 10:47:05 · 412 阅读 · 0 评论 -
Java---类反射---JUnit和注解
JUnit软件测试技术(工具) 在项目中建立专门用户测试的包结构。 在Junit中,通过@Test注解,可以运行一个方法。Junit注解说明使用了@Test注解应该满足以下条件: 1) 必须是无参数的非静态方法。 2) 添加@Test注解的类,必须拥有一个无参数的公开构造,且只能有这一个构造器(不能包含其它构造器)JUnit测试示例演示 1、运行完成后,可以在Juni...原创 2018-05-21 10:24:23 · 300 阅读 · 0 评论 -
Java---类反射---使用
反射使用的三个步骤 用于反射的类,如Method,可以在java.lang.reflect包中找到。使用这些类的时候必须要遵循三个步骤: 第一步:获得你想操作的类的java.lang.Class对象。在运行中的Java程序中,用java.lang.Class类来描述类和接口等。 第二步:调用诸如getDeclaredMethods的方法,取得该类中定义的所有方法的列表。 ...原创 2018-05-21 09:55:45 · 209 阅读 · 0 评论 -
Java---类反射---认识
什么是类反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。 反射(Reflection)是Java程序开发语言的特征之一,它允许运行中的Java程序对自身进行检查, 也称自审,并能直接操作程序的内部属性。例如,使用它能获得J...原创 2018-05-21 09:42:00 · 895 阅读 · 0 评论 -
Java---net(网络编程)---TCP---模拟QQ在线群聊
模拟QQ,在线群聊:底层就是 采用 TCP的编程思想,每个用户必须连接到服务器才能进行聊天,用户之间的群聊还是私聊都必须要用过服务器进行处理和转发。 网络通信的关键就是在于协议,所以设计软件最麻烦的就是在定义协议这个地方,需要统一信息传递的格式。 协议如下: 客户端向服务器发的消息格式设计: 命令关键字@#接收方@#发送方@#消息内容 ...原创 2018-05-13 19:26:05 · 476 阅读 · 0 评论 -
Java---net(网络编程)---C/S和B/S
C/S ( Client/Server ) 客户端和服务端的特点 1、客户端和服务端的软件都需要程序员进行编写。 2、客户端维护起来较为麻烦。 3、客户端的存在可以将一部分运算分离到客户端来运行,减轻了服务器端的压力。B/S ( Browse/Server ) 浏览器和服务端的特点 1、客户端不用程序员编写,直接使用系统中具备的浏览器软件作为客户端即可。程序员只需要编写服...原创 2018-05-13 19:09:26 · 610 阅读 · 0 评论 -
Java---net(网络编程)---TCP---模拟浏览器请求服务和模拟服务器响应浏览器请求
模拟浏览器向服务器发送请求通过 Java 的socket 向百度发送请求。import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.net.Socket;/** * 2018年5月12日 上午11:18:06 * @author <a href="ma...原创 2018-05-13 18:58:03 · 1032 阅读 · 0 评论 -
Java---net(网络编程)---TCP---文件传输
上传文本文件 需求:读取一个本地文本文件,将数据发送到服务端,服务器端对数据进行存储。 存储完毕后,给客户端一个提示。代码:客户端:import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;import java.io.In...原创 2018-05-12 10:52:38 · 345 阅读 · 0 评论 -
Java---net(网络编程)---TCP
TCP 建立连接,形成传输数据的通道。 在连接中进行大数据量传输 通过三次握手完成连接,是可靠协议 必须建立连接,效率会稍低TCP传输 Socket和ServerSocket 建立客户端和服务器端 建立连接后,通过Socket中的IO流进行数据的传输 关闭socket 同样,客户端与服务器端是两个独立的应用程序。TCP传输编程基本思路(客户...原创 2018-05-12 10:43:46 · 244 阅读 · 0 评论 -
Java---net(网络编程)---UDP聊天程序
需求:通过键盘录入获取要发送的信息。将发送和接收分别封装到两个线程中。代码:发送信息的 Runnable实现类:import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketE...原创 2018-05-10 23:28:25 · 149 阅读 · 0 评论 -
Java---net(网络编程)---UDP
先认识一下URL网络资源定位指针——URL类 public final class URL implements Serializable{ public URL(String protocol, String host, int port, String file) throws MalformedUR...原创 2018-05-10 23:20:31 · 148 阅读 · 0 评论 -
Java---net(网络编程)---理论
一、相关基础概念1.计算机网络与Internet2.TCP/IP协议 3.Internet地址 IP地址,形如xxx.xxx.xxx.xxx 域名系统。例如www.edu.cn URL(统一资源定位符) 协议 :// 主机 [: 端口] [/ 文件] [# 引用]客户-服务器(Client-Server)模式二、网络模型与通讯要素1.网络模型OSI参考模型TCP/IP参考模型七...原创 2018-05-10 23:02:18 · 214 阅读 · 0 评论 -
Java---IO---文件切割
实现对大文件的切割与合并。按指定个数切(如把一个文件切成10份)或按指定大小切(如每份最小不小于1K),这两种方式都可以。import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.i...原创 2018-05-06 22:06:17 · 258 阅读 · 0 评论 -
Java---IO---编码和解码
常见的编码表ASCII:美国标准信息交换码。 用一个字节的7位可以表示。ISO8859-1:拉丁码表。欧洲码表 用一个字节的8位表示。GB2312:中国的中文编码表。GBK:中国的中文编码表升级,融合了更多的中文文字符号。Unicode:国际标准码,融合了多种文字。 所有文字都用两个字节来表示,Java语言使用的就是unicodeUTF-8:一种变...原创 2018-05-06 10:12:19 · 381 阅读 · 0 评论 -
Java---IO---深入IO
RandomAccessFile(随机访问文件)1.随机访问文件,自身具备读写的方法。 new RandomAccessFile()之后,若文件不存在会自动创建,存在则不创建。——该类其实内部既封装了字节输入流,又封装了字节输出流。 该类若用write()方法写整数,每次只写它的最后一个字节。而采用writeInt()方法,则可把一个整数完整地写入。2.通过skipBytes(int ...原创 2018-05-03 23:00:15 · 343 阅读 · 0 评论 -
Java---IO---简单IO
字节流:import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.PrintStream;import org.junit.Test;/*...原创 2018-05-03 15:48:22 · 212 阅读 · 0 评论 -
Java---多线程---互斥锁和死锁
互斥锁1.共享“基本数据类型的资源”(多窗口买票) 1)共享静态的“基本数据类型的资源”/** * 2018年5月1日 上午9:40:31 * * @author <a href="mailto:447441478@qq.com">宋进宇</a> 买票 */public class SaleTicketRun implements Runnable { ...原创 2018-05-02 16:58:54 · 991 阅读 · 0 评论 -
Java---多线程---遇见它
线程的创建:方法1: 通过继承Thread覆盖run方法。public class MyThread extends Thread{ @Override public void run() { System.out.println("MyThread 通过继承Thread覆盖run方法"); }}方法2: 通过实现Runnable接口,并且实现run方法。public c...原创 2018-05-02 16:35:21 · 117 阅读 · 0 评论 -
Java---设计模式---书店管理系统(单机版)⑥
书店管理系统正确入口库存模块:界面:主界面:查询以及查询结果界面:包(体现架构):关键性代码:值对象(StockModel):package cn.hncu.booksManagementSystem.stock.vo;import java.io.Serializable;/** * CreateTime: 2018年4月19日 下午7:26:31 * @author 宋进宇 E...原创 2018-04-28 19:13:28 · 1471 阅读 · 0 评论 -
Java---设计模式---书店管理系统(单机版)⑤
书店管理系统正确入口销售模块界面主界面:销售单:添加界面:修改界面:提交销售单:查询界面:查询结果界面:查看明细界面:包(体现架构):关键性代码:值对象1(OutMainModel):package cn.hncu.booksManagementSystem.out.vo;import java.io.Serializable;import cn.hncu.booksManagementS...原创 2018-04-28 19:05:50 · 1224 阅读 · 1 评论 -
Java---设计模式---书店管理系统(单机版)④
书店管理系统正确入口进货模块界面:主界面:进货明细界面:填写进货单界面:添加进货明细界面:修改明细界面:查询订单界面:查询结果界面:包(体现架构):关键性代码:值对象1(InMainModel):package cn.hncu.booksManagementSystem.in.vo;import java.io.Serializable;import cn.hncu.booksManage...原创 2018-04-28 15:23:11 · 911 阅读 · 0 评论 -
Java---设计模式---书店管理系统(单机版)③
书店管理系统正确入口图书模块:界面:包:关键性代码:值对象:package cn.hncu.booksManagementSystem.book.vo;import java.io.Serializable;/** * * CreateTime: 2018年4月19日 下午3:24:35 * @author 宋进宇 Email:447441478@qq.com * Descri...原创 2018-04-26 18:59:40 · 1282 阅读 · 2 评论 -
Java---设计模式---书店管理系统(单机版)②
书店管理系统正确入口用户模块(登入账号:admin 密码:123):界面(丑请见谅):包:关键代码:DAO接口:package cn.hncu.booksManagementSystem.user.dao.dao;import java.util.Collection;import cn.hncu.booksManagementSystem.user.vo.UserModel;impor...原创 2018-04-26 18:47:27 · 1828 阅读 · 0 评论 -
Java---设计模式---书店管理系统(单机版)①
做这个系统是为了加强对前面学习的设计模式的应用,该系统运用了MVC开发模式,工厂模式,值对象,单例等设计模式,并且遵守一定的设计原则。体验:做这个系统花了我快两周的课余时间,在这半个月中认识到MVC开发模式的种种好处,在大二时,做过一个类似的课设,但是和这个书店管理系统相比较发现:采用MVC开发模式看起来需要分很多层,而且严格遵守层间交互原则和面向接口原则。虽然设计起来很繁琐,但是在图书模块发生变...原创 2018-04-26 17:45:11 · 8767 阅读 · 16 评论 -
Java---设计模式---DAO
场景和问题 在Java程序中,经常需要把数据持久化,也需要获取持久化的数据,但是在进行数据持久化的过程中面临诸多问题(如:数据源不同、存储类型不同、供应商不同、访问方式不同等等),请问如何能以统一的接口进行数据持久化的操作?解决方案:DAO的理解 1、DAO其实是利用组合工厂模式来解决问题的,并没有带来新的功能,所以学的其实就是个思路。 2、DAO理论上是没有层数...原创 2018-04-15 11:38:57 · 201 阅读 · 0 评论 -
Java---设计模式---装饰
场景和问题 在不对原有对象类进行修改的基础上,如何给一个或多个已有的类对象提供增强额外的功能?MyBufferedReader:import java.io.FileReader;import java.io.IOException;import java.io.Reader;/** * Time:2018/4/15 * Description: * 装饰: * 在不...原创 2018-04-15 11:16:33 · 162 阅读 · 0 评论 -
Java---设计模式---值对象
场景和问题 在Java开发时,需要来回交换大量的数据,比如要为方法传入参数,也要获取方法的返回值,该如何能更好的进行数据的交互?基本的编写步骤 ◎第1步:写一个类,实现可序列化(如果以后数据是往数据库里存的,那么可以不序列化,节省资源) ◎第2步:私有化所有属性,保持一个默认构造方法(public无参) ◎第3步:为每个属性提供get()、set()方法(如果是boolea...原创 2018-04-15 11:10:54 · 247 阅读 · 0 评论 -
Java---设计模式---工厂
场景和问题 Java程序开发讲究面向接口编程,隐藏具体的实现类,可是如何得到接口呢? 工厂类的命名规范:***Factory 单例工厂方法的命名规范:getInstance()工厂的本质是“选择实现” 工厂、接口和实现类之间的技术边界:工厂只负责选择实现,实现类才做真正的实现,而接口是限定到底实现什么东西和返回什么东西,三者之间分工明确、各负其责。代码:这是两个模块之间的调...原创 2018-04-14 12:35:01 · 229 阅读 · 0 评论 -
Java---设计模式---单例
解决:保证了一个类在内存中只能有一个对象。思路: 1、如果其他程序能够随意用new创建该类对象,那么就无法控制个数。因此,不让其他程序用new创建该类的对象。 2、既然不让其他程序new该类对象,那么该类在自己内部就要创建一个对象,否则该类就永远无法创建对象了。 3、该类将创建的对象对外(整个系统)提供,让其他程序获取并使用。步骤: 1、将该类中的构造函数私有化。 2...原创 2018-04-14 11:39:04 · 159 阅读 · 0 评论 -
Java---设计模式---基本经验
1.类要单一 所设计的类功能要单一 ,一个类应该是描述一类极其相关的属性和方法。2.加强内聚,松散耦合 指一个类,能够在自己内部实现的功能就自己内部实现,不要去调其它类,尽量减少与其它类的依赖关系。3.好的封装性 不必对外开放的部分,一律不对外开放。如果在不确定属性权限的情况下,先把类的属性设成private,用的时候再开。4.类的粒度要合理 Java规范中建议,一个类的大...原创 2018-04-14 11:22:20 · 162 阅读 · 0 评论 -
Java---设计模式---基本原则
1.面向接口编程 1) 这是Java编程里面大家公认的第一原则。 2)接口很重要的一个功能:封装隔离。 3)接口是功能块或封装块的外观2.优先使用对象组合而非类继承3.分层(最典型的三层结构: 表现层 --> 逻辑层 --> 数据层)4.层间交互的基本原则 1) 表现层调用逻辑层,逻辑层调用数据层,不可以反过来。 2) 层间交互也应该通过接口进行调用,以确保各...原创 2018-04-14 11:17:55 · 166 阅读 · 0 评论