------①知识点
文章平均质量分 78
Whale-Song
今天 你努力了不管是否有收获 至少你赢了坐享其成的你。
展开
-
Java---泛型---高级应用
泛型的通配符:? 当操作的不同容器中的类型都不确定的时候,而且使用的都是元素从Object类中继承的方法, 这时泛型就用通配符?来表示即可。(助理解的比方: 泛型中的多态应用) import java.util.ArrayList;import java.util.Iterator;import java.util.List;import org.junit.T...原创 2018-04-07 10:42:46 · 394 阅读 · 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---IO---深入IO
RandomAccessFile(随机访问文件)1.随机访问文件,自身具备读写的方法。 new RandomAccessFile()之后,若文件不存在会自动创建,存在则不创建。——该类其实内部既封装了字节输入流,又封装了字节输出流。 该类若用write()方法写整数,每次只写它的最后一个字节。而采用writeInt()方法,则可把一个整数完整地写入。2.通过skipBytes(int ...原创 2018-05-03 23:00:15 · 343 阅读 · 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---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(网络编程)---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(网络编程)---TCP
TCP 建立连接,形成传输数据的通道。 在连接中进行大数据量传输 通过三次握手完成连接,是可靠协议 必须建立连接,效率会稍低TCP传输 Socket和ServerSocket 建立客户端和服务器端 建立连接后,通过Socket中的IO流进行数据的传输 关闭socket 同样,客户端与服务器端是两个独立的应用程序。TCP传输编程基本思路(客户...原创 2018-05-12 10:43:46 · 244 阅读 · 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---IO---编码和解码
常见的编码表ASCII:美国标准信息交换码。 用一个字节的7位可以表示。ISO8859-1:拉丁码表。欧洲码表 用一个字节的8位表示。GB2312:中国的中文编码表。GBK:中国的中文编码表升级,融合了更多的中文文字符号。Unicode:国际标准码,融合了多种文字。 所有文字都用两个字节来表示,Java语言使用的就是unicodeUTF-8:一种变...原创 2018-05-06 10:12:19 · 379 阅读 · 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---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(网络编程)---C/S和B/S
C/S ( Client/Server ) 客户端和服务端的特点 1、客户端和服务端的软件都需要程序员进行编写。 2、客户端维护起来较为麻烦。 3、客户端的存在可以将一部分运算分离到客户端来运行,减轻了服务器端的压力。B/S ( Browse/Server ) 浏览器和服务端的特点 1、客户端不用程序员编写,直接使用系统中具备的浏览器软件作为客户端即可。程序员只需要编写服...原创 2018-05-13 19:09:26 · 609 阅读 · 0 评论 -
Java---net(网络编程)---TCP---模拟QQ在线群聊
模拟QQ,在线群聊:底层就是 采用 TCP的编程思想,每个用户必须连接到服务器才能进行聊天,用户之间的群聊还是私聊都必须要用过服务器进行处理和转发。 网络通信的关键就是在于协议,所以设计软件最麻烦的就是在定义协议这个地方,需要统一信息传递的格式。 协议如下: 客户端向服务器发的消息格式设计: 命令关键字@#接收方@#发送方@#消息内容 ...原创 2018-05-13 19:26:05 · 476 阅读 · 0 评论 -
Java---类反射---认识
什么是类反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。 反射(Reflection)是Java程序开发语言的特征之一,它允许运行中的Java程序对自身进行检查, 也称自审,并能直接操作程序的内部属性。例如,使用它能获得J...原创 2018-05-21 09:42:00 · 895 阅读 · 0 评论 -
Java---类反射---使用
反射使用的三个步骤 用于反射的类,如Method,可以在java.lang.reflect包中找到。使用这些类的时候必须要遵循三个步骤: 第一步:获得你想操作的类的java.lang.Class对象。在运行中的Java程序中,用java.lang.Class类来描述类和接口等。 第二步:调用诸如getDeclaredMethods的方法,取得该类中定义的所有方法的列表。 ...原创 2018-05-21 09:55:45 · 208 阅读 · 0 评论 -
Java---类反射---JUnit和注解
JUnit软件测试技术(工具) 在项目中建立专门用户测试的包结构。 在Junit中,通过@Test注解,可以运行一个方法。Junit注解说明使用了@Test注解应该满足以下条件: 1) 必须是无参数的非静态方法。 2) 添加@Test注解的类,必须拥有一个无参数的公开构造,且只能有这一个构造器(不能包含其它构造器)JUnit测试示例演示 1、运行完成后,可以在Juni...原创 2018-05-21 10:24:23 · 300 阅读 · 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知识---关于如何跳出多重嵌套循环
1.Java可以在外面的for循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break语句,即可跳出外层循环。int n = 100;ok:for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { for (int k = 0; k < n; k++) { if (k==原创 2017-11-08 18:54:17 · 276 阅读 · 0 评论 -
Java---泛型
泛型技术的由来: 集合中可以存储任意类型对象,但是在取出时,如果要使用具体对象的特有方法时,需要进行向下转型,如果存储的对象类型不一致,在转型过程中就会出现ClassCastException异常。这样就给程序带来了不安全性。 在jdk1.5以后就有了解决方案——泛型技术:在存储元素时,就不允许存储不同类型的元素。存储了就编译失败。 所以就需要在存储元素时,在容器上明确具体的元素类型...原创 2018-04-05 20:47:53 · 149 阅读 · 0 评论 -
Java---java.math包中Big系列
玩转大数(BigInteger): 1.基本数据类型的值要转换成大数(经常会用到),用下面两种方法 1)构造方法 2)valueOf()方法 2.加、减、乘、除、取模等常用数学运算全部用函数来实现,不能数学用运算符。 并且一般的函数参数都是大数对象,不能用数值,也不能用整数及包装类变量。 还要注意,一般的函数在进行大数运算时,不是原地修改,而是返回...原创 2018-04-05 10:43:31 · 344 阅读 · 0 评论 -
Java---根据汉字拼音排序(Tree系列)
在做项目的时候,一般项目都会有查询功能,这时有个需求,就是根据汉字拼音排序。话不多少,直接上代码:import java.text.Collator;import java.util.Comparator;import java.util.Map;import java.util.Set;import java.util.TreeMap;import java.util.Map.Entr...原创 2018-04-05 10:14:16 · 472 阅读 · 0 评论 -
Java---Set/Map排序
为什么要排序?因为Set/Map是按散列表的方式存储,而通常工程需求是按某种顺序显示出来,所以要排序。排序很简单,采用Tree系列来存储Set/Map,即其子类TreeSet/TreeMap;排序方法以TreeSet为例,TreeMap类似。法1:用TreeSet或Treemap的"空参构造方法"来实现,该版本特点: ---称为按元素的自然顺序排序 1)被添加的元素必须要实现java.lang....原创 2018-04-05 10:08:29 · 391 阅读 · 0 评论 -
Java---断言
public class AssertionDemo { public static void main(String[] args) { int x=10; //程序正常执行时,下面的断言语句是无视的,因此不会影响程序执行效率。但若采用断言调试方执行,则下面语句有效 //assert x==9; //断言x的值为10,若断言错误则系统会抛出AssertionErro(异常的兄...原创 2018-03-31 19:51:43 · 162 阅读 · 0 评论 -
Java---Map
Map接口不是Collection接口的继承。而是从自己的用于维护键-值关联的接口层次结构入手。按定义,该接口描述了从不重复的键到值的映射。 可以把这个接口方法分成三组操作:改变、查询和提供可选视图。 改变操作允许从映射中添加和除去键-值对。键和值都可以为null。但是,不能把Map作为一个键或值添加给自身。 “集合框架”提供两种常规的Map实现:HashMap和...原创 2018-03-31 19:47:01 · 124 阅读 · 0 评论 -
Java---Set
按照定义,Set接口继承Collection接口,而且它不允许集合中存在重复项。所有原始方法都是Collection中现成的,没有引入新方法。 具体的Set实现类依赖添加的对象的equals()方法来检查等同性。HashSet类和TreeSet类: “集合框架”支持Set接口两种普通的实现:HashSet和TreeSet。在更多情况下,会使用HashSet存储重复自由的...原创 2018-03-31 19:39:18 · 133 阅读 · 0 评论 -
Java---List
List接口继承了Collection接口以定义一个允许重复项的有序集合。该接口不但能够对列表的一部分进行处理,还添加了面向位置的操作。 面向位置的操作包括插入某个元素或Collection的功能,还包括获取、除去或更改元素的功能。在List中搜索元素可以从列表的头部或尾部开始,如果找到元素,还将报告元素所在的位置。 void add(int index, Object ele...原创 2018-03-31 19:36:02 · 141 阅读 · 0 评论 -
Java---Collection
Collection接口用于表示任何对象或元素组。想要尽可能以常规方式处理一组元素时,就使用这一接口。Iterator接口主要用来枚举集合中的元素。 可理解成集合的查寻组件组操作:Collection接口支持的其它操作,要么是作用于元素组的任务,要么是同时作用于整个集合的任务。 boolean contains( Object obj ) boolean addAll( Collect...原创 2018-03-31 19:31:27 · 143 阅读 · 0 评论 -
搜索---DFS---倒油
题目 相对于广搜,深搜采用的过程偏向面向过程,用“特征串”去区别两种情况是否相同,(同一种搜索)在效率比面向对象要快点。 话不多说直接上代码(3个类):/** * 倒油---倒油问题解决的过程 * @author 宋进宇 */import java.util.ArrayList;public class PourOil { public static void main(...原创 2018-03-29 18:33:39 · 446 阅读 · 0 评论 -
搜索---BFS---倒油
BFS是什么就不多少了直接来个题目---倒油: 有一位厨师要从盛12斤油(a桶)的桶中倒出6斤油来,可是手边只有盛8斤油(b桶)和盛5斤油(c桶)的两个桶,问如何操作才能将6斤取出来呢?题解: 采用面向对象去做,面向对象最主要的是要注意引用直接的捆绑,这个是采用面向对象解题的一大坑,很练手,可以加大对引用和基本数据类型的认识。具体过程如下(有3个类):主类:import...原创 2018-03-29 16:36:21 · 475 阅读 · 0 评论 -
Java---日期处理(Date、Calendar、DateFormat)
Java中玩转日期总共就用到3个类: java.util.Date日期类: 用于表示或存储精确值(long型值),通常用于进行精确值的获取或计算,用计算后的精确值创建一个新的日期对象,精确值=当前日期时间距离“1970年1月1日0时0分0秒0毫秒”所经过的毫秒值 java.util.Calendar日历类: 提供了很多日期时间方面的操作运算功...原创 2018-03-26 15:11:33 · 236 阅读 · 0 评论 -
Java---面向对象---多态
什么是多态?同一行为的多种不同表达,或者同一行为的多种不同实现就叫做多态。例如:1)Person,Student,Teacher之间的关系2)有一个“车”的父类,宝马继承自车,奔驰继承自车。那么,车可以是宝马,也可以是奔驰,具有不同的形态,这种现象就叫多态。 3) “笔”是父类,钢笔、铅笔、圆珠笔是子类。这时如果请你给我一支笔写字,你可以给任意一支笔。运行规则:原创 2017-12-27 16:57:17 · 265 阅读 · 0 评论 -
Java---面向对象---自动装箱和拆箱
自动装箱:就是把基础数据类型自动封装并转换成对应的包装类的对象。拆 箱 :就是把包装类的对象自动解包并转换成对应的基础数据类型。话不多少,直接来代码:import org.junit.Test;public class Demo { @Test public void demo1(){ Integer a = 5; //装箱 Java自动帮我们把5封装成一个Integ原创 2017-12-27 16:42:16 · 389 阅读 · 0 评论 -
Java---面向对象---精确掌握程序执行顺序
public class Person { private String name="Jack";//4 private int age=2;//5 public Person() {//3 此处先执行super(...),再返回到当前类往下执行 age=1000;//6 } public static void main(String[] args) {//1 Person p原创 2017-12-23 20:10:59 · 444 阅读 · 0 评论 -
Java---类反射---ClassLoader(类加载器)
Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类: BootStrap, ExtClassLoader, AppClassLoader 类加载器也是Java类,因为其他是java类的类加载器本身也要被类加载器加载,显然必须有第一个类加载器不是java类,这正是BootStrap。 Java虚拟机中的所有类装载器采用具有父子关系...原创 2018-05-21 10:47:05 · 412 阅读 · 0 评论