自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 力扣——设计一个循环队列

思想:该循环队列是用数组实现的,而在数组的长度上是采用浪费一个数组空间(就是说让this.elem[this.elem[].length-1]位置空着)。因为如果不浪费空间的话(让this.elem[this.elem[].length-1]位置不空着),需在出入队时,判断队列是否为空和是否为满,需要多增加判断。比如:在我的设计中,当this.rear == this.front,即可判断循环队列为空,而而如果不浪费这个空间的话this.rear == this.front有可能是循环队列为空,也有可.

2020-11-20 12:08:14 192

原创 static关键字——来自《Java编程思想》的解读

通常来说,当创建类时,就是描述那个类的对象的外观和行为。除非用new创建那个类的对象,否则,实际上并未获得任何对象。执行new来创建对象时,数据空间才被分配,其方法才工外界调用。有两种情形是上述方法无法解决的。一种情形是,只想未某特定域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至根本不是需要创建对象。另一种情形是,希望某个方法不与包含它的类的任何对象关联在一起。也就是说,即使没有创建对象,也能够调用这个方法。通过static关键字可以满足这两个方面的需要。当申明一个事物是static时,就意

2020-11-09 19:23:04 144

原创 Java中lambda表达式在list和map中的应用

先来复习一下些函数式接口,和怎么用lambda@FunctionalInterfaceinterface NoParameterNoReturn{ void func(); //default void func2(){}}@FunctionalInterfaceinterface OneParameterNoReturn{ void test(int a);}@FunctionalInterfaceinterface MoreParameterNoReturn{

2020-11-06 15:05:38 1104

原创 测试枚举不能被反射

先写一个枚举类public enum TestEnum { RED(1,"红色"),BLACK(2,"黑色"),GREEN(3,"绿色"),WHITE(4,"白色"); public int ordinal; public String color; TestEnum(int ordinal,String color ){ this.ordinal = ordinal; this.color = color; } public

2020-11-06 14:49:06 1216 5

原创 在类外通过反射访问类

这里先写了一个测试类,里面包括了私有成员,私有方法,以及私有构造函数,将会对其私有的,通过反射在类外访问class Student{ private String name = "xiao wang"; public int age = 18; public Student(){ System.out.println("Student1()"); } private Student(String name, int age){ t

2020-11-04 17:04:31 149

原创 二叉搜索树

二叉搜索树又称二叉排序树,它是具有以下性质的二叉树:· 若它的的左子树不为空,则左子树上所有结点的值都小于根结点的值·若它的的右子树不为空,则右子树上所有结点的值都大于根结点的值·它的左右子树也分别称为二叉搜索树插入 public boolean insert(int val){ Node node = new Node(val); if(root == null){ root = node; retur

2020-10-27 23:40:51 52

原创 Java实现对宝石的数量的统计(leet code)

public int numJewelsInstones(String J , String S){ Set<Character> set = new HashSet<>(); for(char j : J.toCharArray()){ set.add(j); } int count = 0; for(char s : S.toCharArray()){

2020-10-23 09:22:29 194

原创 Java实现对带有随机指针的链表进行复制

public Node copyRandomList(Node head){ if(head == null) return null; Node cur = head; Map<Node,Node> map = new HashMap<>(); while(cur != null){ Node node = new Node(cur.val); map.put(cu

2020-10-23 09:21:13 132

原创 Map之HashSet和HashMap练习

public static void main1(String[] args) { Map<String,Integer> map = new HashMap<>(); map.put("一号",1); map.put("二号",2); map.put("三号",3); map.put("四号",4); map.put("五号",5); for (Map.Entry&lt

2020-10-20 13:20:27 100

原创 希尔排序

public static void shellSort(int[] arry){ int drr[] = {5,3,1}; for (int i : drr ){ shell(arry , i); } } /* * 稳定性:不稳定 因为发生了跳跃式的交换*/ private static void shell(int[] arry, int gap) { int len = arry.

2020-10-06 23:33:41 38

原创 选择排序

/* * 时间复杂度为O(n^2) * 空间复杂度为O(1) * 稳定性: 不稳定 因为发生了跳跃式的交换*/ private static void selectSort(int[] arry) { int len = arry.length - 1; for(int i = 0 ;i < len ; i++){ for (int j = i+1 ; j < len ; j++){ .

2020-10-06 23:31:30 49

原创 插入排序

public static void main(String[] args) { int[] arry = new int[] {2,45,36,72,34}; System.out.println("原数组:"); System.out.println(Arrays.toString(arry)); insertSort(arry); System.out.println(System.currentTimeMillis())

2020-10-06 23:30:25 41

原创 堆排序

public static void createHeap(int[] arry){ for(int i = (arry.length-1-1)/2; i>=0 ;i--){ adjustDown(arry,i,arry.length); } } // 向下调整,变成大根堆 private static void adjustDown(int[] arry, int root, int length) { ...

2020-10-06 23:28:39 54

原创 冒泡排序

public static void bubbleSort(int[] arry){ int len = arry.length; boolean flg ; for (int i = 0; i < len -1 ; i++) { flg = false; for (int j = 0; j < len - 1 - i; j++) { if(arry[j] >

2020-10-06 23:27:30 93 1

原创 传输层TCP二

状态①带有状态的三次握手在该例中,A为主动打开链接,B为被动打开连接①A的TCP客户进程首先创建传输控制模块TCB。然后打算建立TCP连接时,向B发送请求报文段,这时首部的同步位SYN=1,同时选择一个初始序号seq=x。TCP规定,SYN报文段(即SYN =1的报文段)不能携带数据,但要消耗一个序号。这时,TCp客户进程进入SYN-SENT(同步已发送)状态。②B收到请求报文段之后,如果同意连接,则向A发送确认。在确认报文段中应把SYN位和ACK位都置1,确认号是ack = x + 1,同时也

2020-09-20 12:10:02 248

原创 传输层协议TCP/IP

TCP报文段的首部格式(1)源端口和目的端口各占两个字节,分别写入源端口和目的端口,TCP的分用功能也是通过端口实现的(2)序号占4个字节,在一个TCP连接中传送的字节流中的每一个字节都按顺序编号。整个要传送的字节流的起始序号必须在建立连接时设置。首部中的序号字段值则指的是本报文段所发送的数据的第一个字节的序号。例如:一报文段的序号值是301,而携带的数据共有100字节。这表明:本报文段的第一个字节的序号是301,最后一个字节的序号是400,下一个报文段(如果还有数据的话)数据序号应该从401

2020-09-17 00:01:18 160

原创 再次理解传输层的UDP协议和TCP/IP协议

传输层负责数据能够从发送端传输到接收端IP地址(Internet Protocol Address),全称网际协议地址,唯一地标识了网络中的主机地址端口端口标识了主机上的为一个进程在TCP/IP协议中,用“源IP",“源端口号”,“目标IP”,“目标端口”,”传输层协议“,这样一个五元组来标识一个通信(可以在cmd中,用netstat -n 命令来查看注意:一个端口号只能属于一个进程(在写一个服务器时,如果你用了和本机上某一个进程一样的端口号,你会发现在运行时,会报该端口已被使用的

2020-09-05 19:38:29 263

原创 HTTP协议

HTTP协议格式Request请求行Method URL Version请求报头KEY : VALUE(多个key,value)空行空行––请求体请求正文Response状态行Version 状态码 状态描述响应报头KEY : VALUE空行空行––这是用Fiddler抓的HTTP协议的百度Fiddler点击进入官网下载也可一用浏览器器中自带的,在设置中用开发者工具进行抓HTTP

2020-08-14 22:25:16 84

原创 HTTP协议

应用层数据能从客户端进程经过路径选择跨网络传送到服务器端进程[ IP+Port ],可 是,仅仅把数据从A点传送到B点就完了吗? TCP/IP 解决的是运输层功能,而两端还要对数据进行加工处理或者使用, 所以我们还需要一层协议。协议之前我对协议的理解是一套规则,生活中,一些规则是给我们人字节看的,而这里的协议是给应用看的HTTP协议应用层协议是我们程序猿自己定的. 但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我们直接参考使用. HTTP(超文本传输协议)就

2020-08-09 22:37:13 101

原创 TCP的Socket编程

服务端public class TCPServer { public static final int SERVER_PORT = 9888; public static void main(String[] args) throws IOException{ // 创建TCP的服务端 try(ServerSocket serverSocket = new ServerSocket(SERVER_PORT)) { while(t

2020-08-06 22:17:20 235

原创 计算机知识二之网络分层

OSI理想模型:自下而上分别是:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层物理层:主要将要发送的数据以0,1的组合信号发送出去,并且接收信号,转化为0,1的组合数据流(比如0,1表示电压的高低,波峰的最小值和最大值)数据链路层:局域网内互联设备之间的传送和识别数据帧网络层:地址管理和路由选择,将数据设法从源端经过若干个中间节点传送到目的端传输层:主要负责向两个主机中进程之间的通信提供服务,(白话:将数据比作快递,告诉快递公司,快递由xx地发往北京,这就是传输层的主要作用,而中间由很

2020-08-02 00:13:50 161

原创 通过javaFX实现的UDP

这里实现的功能和上一节内容一样,主要是想练习使用JAVAFxsample.fxml<?import javafx.geometry.Insets?><?import javafx.scene.layout.GridPane?><?import javafx.scene.control.Button?><?import javafx.scene.control.Label?><?import javafx.scene.control.Te.

2020-08-01 17:04:54 278

原创 UDP协议联系使用(DatagramSocket和DatagramPacket)

这是两个类,server类实现的是服务器模式,client实现的用户模式,用户向服务器发送请求,服务器对客户做出的一个简单回复功能的实现,如:客户:您好,服务器:您好,这样的一个小功能import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.util.Date;import java.util..

2020-08-01 16:59:49 566

原创 每日练习IO之FileStream

直接从代码理解把public static void main1(String[] args){ try(InputStream is = new FileInputStream("测试目录\\hello.txt")) { byte[] buf = new byte[1024]; while (true) { int n = is.read(buf); if(n == -1).

2020-07-29 20:25:59 150

原创 每日一个基础知识复习IO文件目录的遍历(深度加广度)

深度遍历public class ScanDir { public static void main(String[] args) { File root = new File("F:\\"); scanDir(root); } // 深度优先遍历 private static void scanDir(File node) { // 先打印出绝对路径 System.out.println("^" + no

2020-07-25 19:41:06 102

原创 每日一个基础知识复习IO之文件操作

什么是文件文件是计算机上数据的抽象,文件分为普通文件和文件夹(或目录)文件的属性之路径①绝对路径文件的绝对路径是指从盘符开始的具体位置例如:E:\某文件夹\某文件②相对路径由于文件路径结构是是树形结构,所以相对路径是从树来看,就是从某一非叶子结点开始到目标文件的一条路径。属性获取import java.io.File;public class FileDemo0723 { public static void main(String[] args) {

2020-07-24 21:29:39 57

原创 Java解决不安全线程之volatile

语法1.修饰变量的定义2.修饰的共享变量(属性和静态属性的定义)作用最核心的,最主要的 解决内存可见性,其次是原子性和代码重排序public class VolatileDemo { private static boolean run = true; static class Runner extends Thread{ @Override public void run() { while(run){

2020-07-21 23:08:25 129

原创 Java解决线程不安全之Synchronized

synchronized 语法public class SynchronizedDemo { // 同步方法 public synchronized static void method(){ } public void otherMethod(){ // 括号李跟着的时对象的引用 不能时null Object o = new Object(); // 同步代码块 synchronized(o){

2020-07-21 21:41:24 164

原创 Java创建线程及其查看线程的一些常用属性

public class PrintThreadFields { static class SubThread extends Thread{ @Override public void run() { printFields(); } } public static void main(String[] args) { Thread thread = new SubThread();

2020-07-21 20:46:48 134

原创 Java中的线程以及和线程相关的知识

进程和线程的那些事进程是系统分配资源的最小单位,线程是系统调度的最小单位。一个进程内的线程之间是可以共享资源的。一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程,即主线程。自己的看法:前面聊到了进程,所以在这不多做解释。自己对线程的理解是,一组操作,后边会写到线程的代码,站在程序的角度理解线程就更明白了。与线程相关的小知识① 时间片操作系统(如Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务执行一小段时间后强制暂停去执行

2020-07-21 20:41:51 115

原创 计算机体系结构知识一

2020-07-14 14:00:08 237

原创 MySQL之建库建表增删查改

-- 建库create database Student charset utf8mb4;-- 查看数据库show databases;-- 查看数据库结构show create database Student;-- 删库drop database Student;-- 建表CREATE TABLE students ( id INT PRIMARY KEY auto_increment, sn INT UNIQUE, name VARCHAR(20) DEFAU

2020-07-13 19:46:11 180 1

原创 java之单项非循环无头节点链表

class Node{ public int data; public Node next; public Node(int data){ this.data = data; this.next = null; // 每次创建对象时,将node保存在对象里面 }}public class LinkedList { ...

2020-07-08 08:31:59 69

原创 Java之连接mysql与基本查询和非查询操作

连接msql的基本套路①注册驱动②连接数据库③关闭数据库连接public static void main(String[] args) throws ClassNotFoundException, SQLException { // 注册驱动 Class.forName("com.mysql.jdbc.Driver"); // 建立数据库连接 // 要操作的数据库名称 String defaultDatabase

2020-07-07 22:06:22 201

原创 java之顺序表练习

import java.util.Arrays;/*顺序表 物理存储结构上是连续的/public class ArrayList421 {public int[] elem; // 数组public int usedSize; //有效数据个数public static final int intCapacity = 10;public ArrayList...

2020-04-22 18:16:12 217

空空如也

空空如也

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

TA关注的人

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