自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 迷你redis

协议解析:import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.rmi.RemoteException;import java.util.ArrayList;import java.util.List;public class Protocol {...

2019-08-22 14:18:42 234

原创 Java聊天室

java网络编程,通过 TCP,Socket实现多对一的局域网聊天室。可以实现多个客户端连接服务器,服务器接收到信息就会把信息广播到所有的客户端服务器UI界面:import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;imp...

2019-08-12 14:03:37 335

原创 Java小项目---“一条龙”小游戏

详细代码如下:import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class ChessDemo extends Panel implements ActionListener { char who...

2019-08-12 11:19:03 669

原创 数据结构——树的一些基本概念

树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树 。1.节点的度:一个节点含有的子树的个数称为该节点的度; 如上图:A...

2019-07-05 09:56:11 1589 1

原创 8大排序特征总结

直接插入排序的特性总结:元素集合越接近有序,直接插入排序算法的时间效率越高时间复杂度:O(N^2)空间复杂度:O(1),它是一种稳定的排序算法稳定性:稳定希尔排序的特性总结:希尔排序是对直接插入排序的优化。当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了,这样就会很快。这样整体而言,可以达到优化的效果。我们实现后可以进行...

2019-07-05 09:51:17 1025

原创 8大排序算法图文讲解以及代码实现

1.直接插入排序:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。public static void insertSort(int[] array){ int j=0; for(int i=1;i<array.length;i++){ int tmp=arra...

2019-07-05 09:41:24 400

原创 链表面试题(一)

1.反转一个单链表。public class MySingleLinkedlmpl { class Node{ public int getData() { return data; } private int data; public Node next; public Node(i...

2019-05-30 14:17:42 1415

原创 无头单链表的解析与实现

概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的 。// 1、无头单向非循环链表实现public interface ILinked {//头插法void addFirst(int data);//尾插法void addLast(int data);//任意位置插入,第一个数据节点为0号下标boolean addinde...

2019-05-30 14:07:12 656

原创 顺序表解析及实现

顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为:静态顺序表:使用定长数组存储。动态顺序表:使用动态开辟的数组存储。接口实现:静态顺序表只适用于确定知道需要存多少数据的场景。静态顺序表的定长数组导致N定大了,空间开多了浪费,开少了不够用。所以现实中基本都是使用动态顺序表,根据需要动态的分配空间大...

2019-05-30 14:00:14 301

原创 栈与队列的面试题

1.括号匹配问题。解题思路:1.碰到")“开始弹出栈顶的”(",如果此时栈为空,则返回false。2.碰到其他内容直接返回false 。3.字符串结尾时,栈非空返回false。import java.util.Stack;public class Parenthesis {public boolean chkParenthesis(String A, int n) {Stack&lt...

2019-05-30 13:54:11 133

原创 环形队列介绍与实现

环形队列可以使用数组实现,也可以使用循环链表实现。package www.bittech;public class MyCircularQueue { private int front;//队列头 private int rear;//队列尾 private int usedSize;//数据个数 private int[] elem;//数组 ...

2019-05-29 10:29:52 29572 3

原创 队列(图文详解以及实现一些常用方法)

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头。队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数组头上出数据,效率会比较低。package www.bittech;inter...

2019-05-29 10:26:37 3313

原创 sleep()与wait()的区别和联系

1.sleep()Thread类中的方法,wait()是Object类的方法。2.sleep()不释放对象锁,wait()放弃对象锁。3.wait()和sleep()都是让出CPU占有权,让其它线程能够得到运行,不同的地方在于wait()可以通过notify()或者notifyAll()主动唤醒或者wait一定的等待时间自动恢复运行,而sleep方法只能在等待一定的时间后自动恢复运行。4.s...

2019-05-29 10:18:01 730

原创 Object类的方法以及作用

1.clone():保护方法,实现对对象的浅复制,只有实现Cloneable接口才可以调用该方法。2.getClass():final方法,返回一个Class对象,获得运行时类型。3.hashCode()和equale():用于哈希查找,重写equale()方法,一般都要覆写hashCode()方法。equale()用于确认两个对象是否相同。hashCode()用于获取对象的哈希值...

2019-05-29 10:01:58 168

原创 栈(图文详解以及实现它的一些方法)

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。 package www.bittech; ...

2019-05-28 16:50:26 3237

原创 Java I/O(内存流)、字节编码

字符编码常见编码:GBK、GB2312:表示的是国标编码,GBK包含简体中文和繁体中文,而GB2312只包含简体中文。也就是说,这两种编码都是描述中文的编码。UNICODE编码:java提供的16进制编码,可以描述世界上任意的文字信息,但是有个问题,如果现在所有的字母也都使用16进制编码,那么这个编码太庞大了,会造成网络传输的负担。ISO8859-1:国际通用编码,但是所有的编码都需要进...

2019-05-23 15:54:44 193

原创 java小项目——单线程的聊天室

Socket编程它使用TCP提供了两台计算机之间的通信机制。 客户端程序创建一个Socket,并尝试连接服务器的Socket。当连接建立时,服务器会创建一个 Socket 对象。客户端和服务器现在可以通过对 Socket 对象的写入和读取来进行通信。以下步骤在两台计算机之间使用套接字建立TCP连接时会出现:1.服务器实例化一个 ServerSocket 对象,表示通过服务器上的端口通信。...

2019-05-23 15:46:19 176

原创 Java I/O(字节流、字符流与转换流)

**File类不支持文件内容处理,如果要处理文件内容,必须要通过流的操作模式来完成。流分为输入流和输出流。在java.io包中,流分为两种:字节流与字符流:字节流:InputStream、OutputStream字符流:Reader、Writer**字节流与字符流操作的本质区别只有一个:字节流是原生的操作,而字符流是经过处理后的操作。在进行网络数据传输、磁盘数据保存所保存所支持的...

2019-04-26 12:06:18 10070 1

原创 JAVA I/O(File文件操作类)

如果要学好IO,必须清楚抽象类;IO的操作部分重点掌握两个代码模型。IO的核心组成就是五个类(File、OutputStream、InputStream、Reader、Writer)一个接口(Serializable)。科普:1.Windows:文件名是不区分大小写的;;2.Linux:文件名是区分大小写;/File文件操作类在Java.io包之中,File类是唯一一个与文件本身操作(创...

2019-04-26 11:55:21 184

原创 IDEA快捷键

IDEA快捷键:1.调出项目窗口:ctrl+12.快捷创建源文件ctrl+N3.快捷创建getter、setter方法:mac:Command + Nwin:alt + insert4.快捷创建构造方法:mac:Command + Nwin:alt + insert5.自动补全变量名win:ctrl+alt+vmac:command+option+v6.错误解决方案快捷键:...

2019-04-26 11:43:28 689

原创 java_反射与Annotation

在java.lang.reflect.AccessibleObject(java.lang.Class)类中提供有如下与Annotation有关的方法:取得全部Annotation: public Annotation[] getAnnotations()取得指定的Annotation: public T getAnnotation(Class annotationClass...

2019-04-26 11:17:01 192

原创 反射小结(图文详解)

反射特点:1.通过对象获取创建对象的类型信息2.对类型(类)的一个抽象,就是JDK中的Class类3.Class对象的获取方式通过对象的getClass方法获取 eg:obj.getName();通过类名.class获取类的对象通过Class类的静态方法.forName(String)获取Class对象,捕获异常4.通过Class对象的方法newInstance获取实例化对象...

2019-04-20 10:45:13 195

原创 java——反射、反射与类操作

正常处理public class Test { public static void main(String[] args) { Date date = new Date() ; }}以上是我们正常的关于对象的处理流程:根据包名.类名找到类;所谓的"反"指的是根据对象来取得对象的来源信息,而这个"反"的操作核心的处理就在Object类的一个方法:取得Class对象:...

2019-04-20 10:41:20 145

转载 一篇文章读懂 HTTPS 及其背后的加密原理

HTTPS(全称: Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版。本文,就来深入介绍下其原理。为什么需要 https使用https的原因其实很简单,就是因为 http 的不安全。当我们往服务器发送比较隐私的数据(比如说你的银行卡,身份证)时,如果使用 http 进行通信。那么安全性...

2019-04-14 09:54:25 236

原创 JDK1.5新特性概述

JDK1.5以后引入三大常用新特性:泛型、枚举、注解。枚举从JDK1.5开始有了枚举。枚举就是一种高级的多例设计模式。enum Color { RED,GREEN,BLUE}public class TestDemo { public static void main(String[] args) { System.out.println(Color.BLUE)...

2019-04-07 17:08:26 142

转载 Java内存模型之总结

1、总结JMM规定了线程的工作内存和主内存的交互关系,以及线程之间的可见性和程序的执行顺序。一方面,要为程序员提供足够强的内存可见性保证;另一方面,对编译器和处理器的限制要尽可能地放松。JMM对程序员屏蔽了CPU以及OS内存的使用问题,能够使程序在不同的CPU和OS内存上都能够达到预期的效果。Java采用内存共享的模式来实现线程之间的通信。编译器和处理器可以对程序进行重排序优化处理,但是...

2019-03-31 14:14:35 96

原创 JavaSE泛型小结

JDK1.5新特性:可变参数(不会发生数组越界异常)1.可变参数会自动包装成数组,使用时当作数组使用2.方法有多个参数时,可变参数需要放到参数列表最后(否则会报错)3.方法的可变参数最多有一个4.可变参数不传值时,包装了一个空数组foreach(增强的for循环)for(元素类型 变量名:集合类型){…}泛型JDK1.5以后引入三大常用新特性:泛型、枚举、注解。泛型是一件很重...

2019-03-31 12:27:10 152

原创 static关键字与extends关键字在实例中的应用

class A{ int y=6; class Inner{ static int y=3; void show(){ System.out.println(y); } }}class Demo{ public static void main(String[] args) { A.Inner inner=new A().new In...

2019-03-26 16:50:41 312

转载 阿里巴巴的 26 款超神 Java 开源项目!

来自:阿里云云栖社区链接:http://segmentfault.com/a/11900000173467991.分布式应用服务开发的一站式解决方案 Spring Cloud AlibabaSpring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布...

2019-03-26 16:44:47 185

原创 java数组方法的拓展

public class Test { public static void main(String[] args) { System.out.println(arrayMax(new int[]{1, 2, 3, 4, 5})); System.out.println(arrayMin(new int[]{11,1,5,7})); S...

2019-03-24 16:34:53 236

原创 使用String类的一些方法实现编程

1.实现单词首字母大写public class Test{ public stati cvoid main(String[] args){ System.out.println(fistUpper("hello")); System.out.println(fistUpper("")); System.out.println(fistUpper("a")...

2019-03-24 11:36:14 260

转载 10张Gif动图让你弄懂递归等概念

来源: 编程派链接:http://codingpy.com/article/10-gifs-to-understand-some-programming-concepts/图像(包括动图)是传递信息的一种高效方式,往往能增强表象、记忆与思维等方面的反应强度。所谓一图胜千言,说的就是这个道理。今天为大家整理了十张动图GIFS,有助于认识循环、递归、二分检索等概念的具体运行情况。一、循环GI...

2019-03-24 11:03:09 342

原创 java——异常与捕获

异常体系:当程序出现错误时,能最大化的减少损失的一种保护手段。在java中异常也是类。异常类继承关系:只有Throwable以及其子类能进行异常捕获与处理。Error:描述JVM运行时内部错误,如栈溢出,堆溢出。Exception:程序中普遍存在的,由于代码问题产生的错误。IOException:由于输入输出产生的异常,如在程序中打开了一个并不存在的文件。RuntimeExce...

2019-03-24 10:34:36 190

原创 java编程——使用递归方法解决猴子吃桃问题

题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。分析:此问题的出口是第十天只剩一个桃子。即day(10)=1那么根据题目可以得出第九天的桃子数,day(9)=(day(10)+1)*2同理可以推出day(...

2019-03-23 16:11:09 3478

原创 用java实现——编程:找出1000以内的完数。

一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3 public class Test { public static void main(String[] args) { for (int i = 1;i <= 1000;i++) { if (isWanShu(i)) { Sys...

2019-03-23 15:51:44 768

原创 java中包的定义与使用

包的本质就属于一个文件夹,用来解决类名称重名的问题。包的定义:在源文件首行使用package包名称;package www.myfile.java;public class Test{ public static void main(Srting[] args){ System.out.println("Hello!"); }}一但程序出现包名称,那么*...

2019-03-23 14:37:09 3157

原创 java设计模式之单例模式

单例模式单例模式:一个类只产生一个实例化对象如何限制对象的产生数量?private声明构造方法(无对象)单例类内部提供一个产生好的对象单例类内部提供静态方法返回唯一的一个对象饿汉式单例: class Test{ private static final Test test=new Test(); private Test(){} ...

2019-03-23 14:32:20 99

原创 关于java的几种设计模式——模板模式、工厂模式、代理模式

软件工程:共23种设计模式5大设计原则:OCP(开闭原则)一个软件实体如类、接口等应该对扩展开放,修改关闭。设计模式先找第三方,找到这个第三方设计模式学会一半。模板模式一、模板设计模式(模板方法)-基于抽象类的设计模式类比于实验模板、简历模板第三方:模板类,将核心算法与具体子类相分离,子类只需要覆写具体的某几步流程即可。模板方法的特点:在一个方法中定义一个算法的骨架(如冲泡饮料流程...

2019-03-23 14:28:30 513

原创 java编程——实现圆柱体面积、体积的运算

interface A{ double PI=3.14; double area(double radius,double height);}interface B{ void setColor(String color);}interface C extends A,B{ void volume(double radius,double height);...

2019-03-21 14:15:54 9931

原创 用java实现小程序——使用接口实现简易计算器

interface IComputer{ int computer(int n, int m);}//Jiafa类实现接口IComputerclass Jiafa implements IComputer{ public int computer(int n, int m){ return n+m; }}//Jianfa类实现接口IComputer...

2019-03-21 14:08:41 1916

空空如也

空空如也

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

TA关注的人

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