自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot操作

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.5.RELEASE</version> </parent> <dependency> ...

2021-08-12 21:27:57 128

原创 二叉树

二叉树BinaryTreeBtNode类的构建public class BinaryTree {private BtNode cur;private BtNode root; class BtNode // binaryTreeNode { int data; BtNode leftchild; BtNode rightchild; public BtNode() { da

2021-05-10 09:37:34 117

原创 HTTP协议

总结一些常见得http问题摘要1、常用的HTTP方法有哪些?2、GET方法与POST方法的区别3、HTTP请求报文与响应报文格式4、常见的HTTP相应状态码5、HTTP1.1版本新特性6、常见HTTP首部字段7、HTTP的缺点与HTTPS8、HTTP优化摘要http请求由三部分组成,分别是:请求行、消息报头、请求正文 HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协

2021-04-27 17:35:07 296

原创 算法

要理解思想全排列斐波那契全排列全排列就类似于多分枝的斐波那契,但是算法不同。public class Perm { public static void swap(int[] arr,int k,int j){ int tmp=0; tmp =arr[k]; arr[k]=arr[j]; arr[j]=tmp; } public static void perm_idea(int[] arr,int k,int

2021-03-26 17:38:24 139

原创 TCP三次握手、UDP协议、四种IO模型

字节爱问TCP三次握手四次挥手UDP编程四种IO模型TCP三次握手四次挥手客户端先发送请求TCP建立连接的过程《闪电》《确认》* 传输层向上面的应用程序提供通信服务 * 第一次握手 * client发送连接请求数据报文到server端 SYN_SENT状态 * 第二次握手 * server收到连接请求数据报文,如果同意建立连接,向client回应确认报文端 * (为TCP连接分配TCP缓存和变量) * 第三次握手 * client收到server收到确认之后,它再次向服务器端

2021-03-24 17:15:51 276

原创 NIO 同步非阻塞IO

/** * IO模型 * BIO 同步阻塞IO * NIO 同步非阻塞IO * IO多路复用 一个select/epoll系统调用 * AIO 异步非阻塞IO * * Java中NIO * 提供了选择器(Selector)类似操作系统提供的select/epoll,也叫做IO多路复用器 * 作用是检查一个channel(通道)的状态是否是可读、可写、可连接、可接收的状态,为了 * 实现单线程管理多个channel,其实也就是管理多个网络请求 * * Channel通道

2021-03-22 22:33:19 65

原创 MYSQL学习

范式 范式链接.

2021-03-19 11:33:36 50

原创 网络概述和TCP编程

概述 * 网络编程 * 体系结构 - OSI TCP/IP 五层协议 * 交互信息: * 主机1 -》 主机2 * 应用程序1 -》 应用程序2 * 主机1的第5层(应用层) -》 加上必要的控制信息H5 -> 变成下一层所需要数据单元 -》 * 到达主机1第4层(运输层) -》 加上必要的控制信息H4 -》 * 到达主机1第3层(网络层) -》控制信息分为两部分 H2 T2 -》 * 到达主机1第2层(数据链路层) -》比特流 -》 * 到达主机1第1层(物理层)

2021-03-08 21:18:57 59

原创 线程安全ConcurrentHashMap源码分析

package thread;import java.util.concurrent.ConcurrentHashMap;/** * ConcurrentHashMap源码分析 * 1、类的继承关系 * 2、类的属性 * sizeCtl table的初始化和扩容需要用到的变量 * -1 代表table正在初始化 * -N 代表N-1个线程在进行扩容操作 * 其他情况: * 1)如果table未初始化,table表示初始化的大小 * 2)如果table初始化完成,表示table的容

2021-03-07 17:29:09 78

原创 复习题

package collection;import java.util.LinkedList;/**一1、CJVM判定两个类是否是同一个类,不仅根据类名去判断,还需要判断加载该类的类加载器是否是同一个,相同的class文件被不同的类加载器加载得到的是不同的两个类2、BsubString左闭右开3、A4、C5、AB重载:方法名相同 参数列表不同 返回值不能作为判断重载的条件静态方法可以被重载,但是不能被重写7、B8、C9、

2021-03-03 10:09:18 102 1

原创 线程间的通信(包括生产者消费者模型)

/** * 线程间的通信 * 1)synchronized加锁的线程的Object类的wait/notify/notifyAll * wait 调用某个对象的wait方法可以让当前线程阻塞,并且当前线程要拥有 * 某个对象的monitor lock * notify 调用某个对象的notify方法能够唤醒一个正在等待这个对象monitor * lock的线程,如果有多个线程都在等待这个对象的monitor lock,这个方法 * 只能够唤醒一个 * notifyAll 调用某个对象的not

2021-02-28 11:29:45 92

原创 Sychronized练习题与volatile关键字

/**课堂练习:synchornized同步锁实现3个线程循环打印数字,使用线程1,打印1,2,3,4,5.线程2,打印6,7,8,9,10.线程3,打印11,12,13,14,15.依次循环打印,直到打印至60(提示:会使用到wait/notify/notifyAll方法)**/public class TestDemo10 { public static int num = 1;//要打印的数字 public static int index = 0 ; //线程的计数器,用

2021-02-09 16:44:43 119

原创 并发编程及synchronized关键字

/**并发编程什么是并发编程?并发编程是为了提高程序的执行速度,在宏观上使得多个任务同时执行,则需要启动多个线程,但事实启动多个线程之后,不管针对单核cpu还是多核cpu线程进行上下文切换(cpu 通过)给每一个线程分配时间片,只有说拿到时间片的线程才可以执行,通常时间片很短,所以才会感觉到多个线程在并行操作,存在线程不安全性。一个正确执行的并发程序,满足并发编程的三大特性,原子性、可见性、有序性1) 原子性所谓原子性是指一次或者多次操作中,要么所有的操作全部执行要么所有的操作都不执行

2021-02-03 14:15:39 173

原创 线程的生命周期及方法

回顾进程:一段正在运行的程序,资源分配的基本单位线程:进程中的任务,cpu调度的最小单元线程的创建:1)Thread 继承2)Runnable 实现3)Callable 实现4)匿名内部类启动线程:start (run call)守护线程守护线程是一类比较特殊的线程,一般用于处理后台的工作,比如JDK的垃圾回收线程什么守护线程?为什么会有守护线程?何时需要守护线程?明确:JVM什么情况下退出?The java virtual machine exits when the onl

2021-02-02 14:32:31 204

原创 线程的基本认识与创建

多线程* 1、进程和线程的认识* 1)进程指的一段正在运行的程序* 一个程序运行中可以执行过个任务,任务称之为线程* 2)进程是程序执行过程中资源分配和管理的基本单位* 线程是cpu执行的额最小单位* 进程拥有自己的独立的地址空间,每启动一个进程,系统就会分配地址空间* 进程可以拥有多个线程,各个线程之间共享程序的内存空间* 为什么出现线程?* 每个进程有自己独立的地址空间,多并发请求,为每一个请求创建一个进程* 导致系统开销、用户请求效率低** 串行 -》 批处理 -》进程

2021-02-01 16:38:46 69

原创 RandomAccessFile 、 lambda表达式、Stream流

RandomAccessFile一种操作文件的类,可以操控文件内的指针位置。/**RandomAccessFile使用构造函数public RandomAccessFile(String name, String mode)public RandomAccessFile(File file, String mode)mode“r” 以只读打开“rw” 可读可写“rws” 可读可写 文件的内容 文件元数据的更新都会同步到基础存储设备“rwd” 可读可写 文

2021-01-27 23:41:35 177

原创 装饰类、序列化和反序列化

装饰器的作用就是动态扩展某一个类的功能/**装饰器模式1)不使用继承2)不改变原类的文件3)动态扩展Component: InputStream统一接口,装饰类/被装饰类的基本接口ConcreteComponent FileInputStream具体实现类(被装饰类),它本身是一个比较完整的类Decorator: FilterInputStream装饰类,实现Component接口同时还会在内部维护一个ConcreateComponent的实例,并且这个实例是在构

2021-01-25 21:33:20 168

原创 集合框架库

集合框架库部分知识点:1)List接口 List接口的特点 List接口中常用方法有哪些2)ArrayList和LinkedList的区别和联系?3)ArrayList中快速失败机制? CopyOnWriteArrayList中非快速失败机制?4)ArrayList和Vector的区别和联系?5)Queue接口 Queue接口所提供的两组方法对应有哪些?6)Deque接口 Deque接口作为栈使用主要有哪些方法,作为队列使用有哪些方法?7)ArrayDeque 底层数据结构是什么样的?为什么

2021-01-23 23:56:11 67

原创 IO

课堂练习:拷贝图片或音频方法一:一个字节一个字节拷贝 打印拷贝所耗时间方法二:获取当前图片的大小,直接创建一个对应大小的字节数组,使用缓存数组拷贝 打印拷贝所耗时间** * @author: 贾兴伟 * @date: Created in 15:02 2021/1/22 */public class TestDemo { public static void copyByOntByte(File file1, File file2){ long startTime

2021-01-23 23:55:47 70

原创 File类的知识点及应用

package FFFile;import java.io.File;import java.io.IOException;/** * @author: 贾兴伟 * @date: Created in 17:39 2021/1/23 */public class TestDemo1 { /** * IO流 * input * output * 1、文件 File * 2、Java中IO流 * 2.1 字节流

2021-01-23 17:44:45 148

原创 哈希表 hashmap

hashmap和hashtablehashmap是线程安全。Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题紫色部分即代表哈希表,也称为哈希数组,数组的每个元素都是一个单链表的头节点,链表是用来解决冲突的,如果不同的key映射到了数组的同一位置处,就将其放入单链表中。学到这里的时候把这个补充完整。对于基本数据类型号比较的是值,对于引用数据类型号比较的是地址。所以一般比较引用数据类型用.equals方法 不过要重写。Compa

2021-01-03 18:17:40 429

原创 PriorityDequeue

PriorityQueue(等上这节课了以后把代码完善)Prioritydequeue构造时候除了可以传入数组大小,也可选择是否传入比较器。如果传入null,则按自然排序进行。有传入即可进行属性的比较Prioritydequeue无论是add还是remove方法都只是保证数组小根堆的形式 之所以能自然排序是因为你用remove方法及头删的时候 他出来的都是最小的也就是根部的数 所以就是以排序的形式打印出来。打印语句是2)提供比较器的示例这里用到了(基类的引用,引用派生类的对象)比较器实现以

2020-12-25 21:06:20 248

原创 集合 Interator vector Arraylist LinkList

“我感觉集合是一种列表”。Java集合类存放在java.util包中,是一个用来存放对象的容器1.集合只能存放对象。比如你存入一个int型数据66放入集合中,其实它是自动转换成Integer类后存入的,Java中每一种基本数据类型都有对应的引用类型。2.集合存放的都是对象的引用,而非对象本身。所以我们称集合中的对象就是集合中对象的引用。对象本身还是放在堆内存中。3.集合可以存放不同类型,不限数量的数据类型。迭代器迭代器iterator最大的作用,可以在不考虑集合结构的情况下,调用hasNext和

2020-12-17 14:22:55 64

原创 树与堆排序

大根堆,根最大。左孩子 2n+1,右孩子2n+2堆排序package Sort;/** * @author: 贾兴伟 * @date: Created in 21:33 2020/12/8 */public class Heapsort { //用二叉树的概念 //heapsort这个函数的作用就是找到一部分树的最大并把它放到end处。 public static void heapsort(int[] array,int start,int end){

2020-12-17 14:22:41 83

原创 递归 几个简单的点和杨辉三角

递归三点1、找 临界点2、满足临近点的解决办法3、提取相同的逻辑一般return(函数自己)杨辉三角:public static int getValue(int x,int y){ //临界点 if(y==0||x==y){ //解决临界点的办法 return 1; } //提取相同的逻辑,缩小问题规模。 return getValue(x-1,y-1)+getValue(x-1,y);}...

2020-12-17 11:35:59 54

原创 JAVA接口中的default和Static

链接: JAVA接口中的default.链接: Java在接口中使用关键字default和static.

2020-12-15 20:32:31 104

原创 小知识点 需要记得

String 类型的写入用scanner.next;创建栈的代码Stack<Integer> number = new Stack<Integer>();系统自带的ArrayList创建方法ArrayList<Students> stu_arr = new ArrayList<>();String里面方法:String.CharAt(坐标)方法可以选取字符串元素,如int start=0String.CharAt(start);String

2020-12-05 11:06:04 67

原创 栈、队列、循环队列

package dataStructure;import java.util.Arrays;/** * 栈、队列 */class OrderStack<T>{ private int top; //栈顶指针 private T[] stackArrays; private static final int defaultcapacity = 5; public OrderStack(){ this(defaultcapacity);

2020-11-30 20:49:13 90

原创 反射

引入首先 class对象 是在类加载过程的第一阶段加载阶段生成的 存储在 java堆上提出问题这里将构造方法设为私有的public class People { private People(){//这里将构造方法设为私有的 } public void eat(){ System.out.println("吃饭"); }}因为构造方法为私有 显然这里不能生成对象 也无法调用方法public class Test_reflect {

2020-11-09 09:13:42 81

原创 java写的一个迷宫小游戏 (累死我了)

java写的一个迷宫小游戏 (累死我了)/** * @author: 贾兴伟 * @date: Created in 10:41 2020/10/14 */public class TestDemo2 { public static void main(String[] args) { Maze maze =new Maze(3,3); maze.goMaze(); }}import java.util.*;public class Maze

2020-11-04 19:54:35 1056

原创 *泛型--包含用泛型写的冒泡排序,抽象类,接口

泛型常用形式:比如mazenode中需要stack存储二维数组,puzzle里需要stack存储一维数组,但是mystack的功能都是一样的,所以为了让代码更通用可以设置成 Class MyStack{ }T是一个未知的类型,称为泛型,只在编译期有效 进行类型安全监测在运行期 :擦除到Object类型里。即T就是object类型。用泛型的方法写一个二分查找,为了更熟悉泛型的使用,一定要看public class Binarysearch_fanxing { public st

2020-11-04 19:13:22 747

原创 *用递归写个二分查找;*

用递归写个二分查找;package CL6;import java.util.Scanner;/** * @author: 贾兴伟 * @date: Created in 20:00 2020/9/22 */public class BinarySearch { public static int BinarySearched(int[] arr,int beginIndex,int endIndex,int value){// int left = beginIn

2020-11-04 19:09:34 186

原创 输入n个评委,再输入n个评委的分数,去掉一个最高分去掉一个最低分,求平均分

输入n个评委,再输入n个评委的分数,去掉一个最高分去掉一个最低分,求平均分package CL7_class;/** * @author: 贾兴伟 * @date: Created in 17:20 2020/9/27 */import java.util.Arrays;import java.util.Scanner;public class ceshi {// public static double[] sortd(double[] score){// in

2020-11-04 19:08:17 7282

原创 冒泡排序,选择排序,插入排序,希尔排序,快速排序,归并排序

package CL7_class;/** * @author: 贾兴伟 * @date: Created in 14:49 2020/9/29 */public class maopao { public static void main(String[] args) { double[] score = {1,5,3,6,4,8,2,10,11,17.2,13.4,7.6}; double[] scored = sortd(score);

2020-11-04 19:06:58 238 1

原创 字符替换问题的代码

package CL6;/** * @author: 贾兴伟 * @date: Created in 17:37 2020/9/22 */import java.util.Arrays;import java.util.Scanner;public class insertSignal { public static char[] insertSignaled(char[] arr,char[] brr){ int j =0; for(int i=0.

2020-11-04 19:04:34 178

原创 输入一个英文单词顺序,反转句子中单词的顺序,但单词内字符的顺序不变。 为简单起见,标点符号和普通字母一样处理,例如输入“i am a student”,输出“student a am i“。*

第一种方法:package CL6;/** * @author: 贾兴伟 * @date: Created in 9:10 2020/9/22 */import java.util.Scanner;public class reserve2 { public static void swap(String[] arr,int i ,int j){ String a =""; a= arr[i]; arr[i] = arr[j];

2020-11-04 19:02:34 452

原创 java异常

try{//存放可能发生异常的代码 }catch(ArrayIndexOutOfBoundsException e){ e.printStackTrace(); System.out.println("越界"); }catch (Exception e){//子类实现方式 } finally { System.out.println("必定会被执行"); ...

2020-10-29 20:22:28 58

原创 继承和多态(访问修饰符,重写重载,重写实现原理)重写了一个equals方法。

继承子类可以通过对象点的方式调用方法。共有的可以直接用,或者this点,也可以super点。但有区别。Java 单一继承 一个类只能继承一个。否则会出现菱形继承访问修饰符publicprotected(相同包路径下<=>默认权限,不同包路径子类可以访问父类用protect修饰)默认private方法重载和重写的区别重载:同一个作用域,函数名相同,参数列表不同。void fun(){}void fun (int a){}重写:继承中,子类重写实现父类的方法(函

2020-10-28 14:53:48 98

原创 类加载过程---包括双亲委派模型

类加载时机:new,静态属性, 静态方法调用。获取Class对象如People. Class加载子类时需要提前加载父类启动JVM,main函数所咋的类需要加载启动类加载器是用c/c++实现的所以也叫顶级父类加载器,如果一个类的加载器是启动加载器,则返回null(因为java是面向类和对象的,所有的模块都是一个类,都需要加载器,最后只能是用其他语言完成的。)蓝色线表示检查是否之前加载过(即从子类往父类查找),如果加载过就返回Classpath。红色线开始尝试从父类往子类加载,知道找到能加..

2020-10-28 14:52:24 466

原创 单例模式和string类(装箱拆箱)

(懒汉)单例模式public class TestDemo { public static void main(String[] args) { People p1 = SingleLeton.getInstance(); People p2 =SingleLeton.getInstance(); System.out.println(p1+" "+p2); }}public class People {}public clas

2020-10-16 15:26:09 228

空空如也

空空如也

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

TA关注的人

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