自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常用sql函数

旨在帮助读者快速查找出相应的sql函数

2022-11-02 14:01:46 2139

原创 Excel表格文件的读取

Excel文件读取应用技术:1、文件io流2、Apache提供的jar包–POI(处理Excel、Word、PPT等文件)Maven导入:<!-- POI --><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.8</version> <exclusions>

2021-10-11 18:52:32 538

原创 测试0304

1、什么是软件测试?验证软件是否满足用户需求软件测试是按照一定的评判标准(需求)来进行的活动2、软件测试和软件开发的区别?什么是需求?满足用户的期望和正是规定的合同,标准,文档所需要的条件和权限...

2021-03-04 21:40:49 186 1

原创 知识点0303

volatile• 禁止了指令重排• 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量值,这个新值对其他线程是立即可见的• 不保证原子性(线程不安全)只有synchronized才保证了原子性和可见性。static关键字修饰方法的用法被static修饰的方法叫做静态方法 如题中hello就是一个静态方法静态方法的访问有两种:1.直接使用“类名.”调用 Test.hello(); (一般都用第一种方法,让人一下就明白这是静态方法)2.new 一个对象 ,“引用.” 的

2021-03-03 23:31:07 160 1

原创 二维数组练习01

//给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。class Solution {public int maximalRectangle(char[][] matrix) {int row = matrix.length;if(row == 0) return 0;int column = matrix[0].length;int[][] dp = new int[row][column];//用一个新的二维数组来代替

2021-02-28 23:30:46 180

原创 知识点0225

ICMP:Internet 控制报文协议,用于在主机与路由器之间传递控制消息,控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息;ARP:地址解析协议,根据IP地址获取物理地址的一个TCP./IP协议;RARP:反向地址转换协议,允许局域网中的物理机器从网关服务器的ARP表或者缓存上请求其IP。#include <sys/socket.h>int listen(int sockfd, int backlog);sockfd是调用socket()函数的返回值,不用多解释。

2021-02-25 23:18:43 261

原创 Spring常见问题

容器:Bean容器/Ioc容器的理解,集合框架容器,Tomcat容器(Servlet容器)JavaEEBean容器/Ioc容器的理解Spring容器主要是对IoC设计模式的实现,主要是使用容器来统一管理Bean对象,及管理对象之间的依 赖关系。创建容器的API主要是BeanFactory和ApplicationContext两种:BeanFactory是最底层的容器接口,只提供了最基础的容器功能:Bean 的实例化和依赖注入,并 且使用懒加载的方式,这意味着 beans 只有在我们通过 getB

2021-02-24 23:37:37 143

原创 知识点0216

经过两个RTT,第三次发送时,rwnd = 13KB,cwnd = 4KB,发送窗口取较小值:4KB经过三个RTT,第四次发送时,rwnd = 9KB,cwnd = 8KB,发送窗口取较小值:8KB经过四个RTT,第五次发送时,rwnd = 1KB,cwnd = 16KB,发送窗口取较小值:1KB当然第五次发送之后接受窗口就满了,主机甲就会周期性的只发送一个字节数据的报文段,一旦主机乙的缓存有空,确认报文段就会出现非0的通知窗口值,当然这里是题目要求,主机乙的数据不被取走,仅仅为了计算,并非实际情况。

2021-02-16 23:30:04 813

原创 知识点0210

当TCP 发送报文段时,就创建该特定报文段的重传计时器。可能发生两种情况:1. 若在计时器截止时间到之前收到了对此特定报文段的确认,则撤销此计时器。2. 若在收到了对此特定报文段的确认之前计时器截止期到,则重传此报文段,并将计时器复位。http的八种请求方法:get,post,put,delete,head,trace,options,connectget用于获取资源,post用于传输实体主体,put用于传输文件, HEAD方法只是请求消息报头,而不是完整的内容能登录QQ说明UDP没问

2021-02-10 23:30:36 103 1

原创 知识点0209

这里是引用在具有对换功能的操作系统中,通常把外存分为文件区和对换区。前者用于存放文件,后者用于存放从内存换出的进程。抖动现象是指刚刚被换出的页很快又要被访问为此,又要换出其他页,而该页又快被访问,如此频繁的置换页面,以致大部分时间都花在页面置换上。撤销部分进程可以减少所要用到的页面数,防止抖动。对换区大小和进程优先级都与抖动无关页面的频繁更换,导致整个系统效率急剧下降,这个现象称为内存抖动。抖动一般是内存分配算法不好,内存太小引或者程序的算法不佳引起的页面频繁从内存调入调出。读取数据速度最快的当.

2021-02-09 23:39:24 483

原创 知识点0207

根据基址寻址方式的定义,操作数的有效地址是基址寄存器的内容加上形式地址(位移量)。如何减少换页错误? 访问局部性(locality of reference)满足进程要求如果系统只有用户态线程,则线程对操作系统是不可见的,操作系统只能调度进程;如果系统中有内核态线程,则操作系统可以按线程进行调度;不可抢占式静态优先数法会使得优先级低的程序饿死,亦即长期得不到运行。一个在线服务器通常需要读取存储着海量数据的数据库。为了提高服务器处理速度,通常需要加cache (缓存),以下场景中不适合使用cache

2021-02-07 23:12:39 315

原创 知识点2

HASH 函数冲突处理方式包括:开放定址法再哈希法链地址法设置公共溢出区法多线程实现可重入函数时,引入的全局变量需要用互斥量加以保护两个线程同时对简单类型全局变量进行写操作也需要互斥线程同步的方法包括使用临界区,互斥量,信号量等可重入函数不可以调用不可重入函数子线程和父线程1.孤儿进程如果父进程先退出,子进程还没退出那么子进程将被 托孤给init进程,这是子进程的父进程就是init进程(1号进程)。init进程没有父进程.2.僵尸进程进程终止后进入僵死状态(zombie),等

2021-02-05 23:24:22 167

原创 知识点1

Serial收集器单线程收集器,收集时会暂停所有工作线程(我们将这件事情称之为Stop The World,下称STW),使用复制收集算法,虚拟机运行在Client模式时的默认新生代收集器。2.ParNew收集器ParNew 收集器就是Serial的多线程版本,除了使用多条收集线程外,其余行为包括算法、STW、对象分配规则、回收策略等都与Serial收集器一摸一样。对 应的这种收集器是虚拟机运行在Server模式的默认新生代收集器,在单CPU的环境中,ParNew收集器并不会比Serial收集器有更.

2021-02-03 21:50:28 181

原创 练习题02-01

import java.util.*;public class Main {public static void main(String[] args){Scanner sc = new Scanner(System.in);while(sc.hasNext()){String input = sc.nextLine();String[] str=input.split(";");int x = 0,y = 0;for(int i = 0;i < str.length;i++){if

2021-02-01 22:20:35 52

原创 每日练习

import java.util.Scanner;public class Main {public static void main(String[] args){ Scanner sc = new Scanner(System.in); String s = sc.nextLine(); String[] senString = s.split(" "); for(int i = senString.length-1; i >= 0;i--){

2021-01-30 23:26:58 201

原创 linux基本操作·命令

LinuxLinux基本操作:查看:Ls命令对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息ls //查看当前目录下的所有目录和文件ls -a //查看当前目录下的所有目录和文件(包括隐藏的文件)ls -l //列表查看当前目录下的所有目录和文件(列表查看,显示更多信息),与命令"ll"效果一样ls /bin //查看指定目录下的所有目录

2021-01-27 23:00:00 115

原创 sqlite

public class FileToMeta {public static void main(String[] args) {File file = new File(“C:\Users\bit\Desktop\mysearcher\mysearcher.db”);System.out.println(file.getName());System.out.println(file.getAbsoluteFile());System.out.println(file.isDirectory())

2021-01-24 23:26:22 234

原创 Mybatis进阶

Mybatis进阶多个方法参数需要在方法参 数上使用 @Param(“参数的名称”) ,之后在 sql 中使用 #{参数的名称} 的方式来替换占位符。#{参数} vs ${参数}对于 #{参数} 的使用来说,如果参数是字符串,在替换占位符时,会在 sql 语句中加上单引号。 如果是不能使用单引号的字符串,例如 sql 语句是 order by 字段 {传入参数} ,此时 {传入参数} 就需 要使用 ${传入参数} 这样的占位符,替换时不会带上单引号。插入时获取自增主键useGeneratedKe

2021-01-22 22:02:34 170

原创 Mybatis

MybatisJDBC执行步骤Java 语言中对于数据库操作的原始方式,即通过 JDBC 来操作数据库,步骤几乎都比较固定,以下为语 法层面的步骤:创建数据库连接池 DataSource通过 DataSource 获取数据库连接 Connection编写要执行带 ? 占位符的 SQL 语句通过 Connection 及 SQL 创建操作命令对象 Statement替换占位符:指定要替换的数据库字段类型,占位符索引及要替换的值使用 Statement 执行 SQL 语句查询操作:返回结果集

2021-01-21 22:46:56 197

原创 AOP

AOPAOP(Aspect Oriented Programming)称为面向切面编程,AOP利用一种称为"横切"的技术,将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名 为"Aspect",即切面。使用"横切"技术,AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处基本相似,比如权限认证、日志、事物。AOP的作用在于分离系统中的各种关注点,将核心关注点

2021-01-20 22:26:04 265

原创 多线程--最后一个结束发送结束信号

package atomic_demo;import java.util.concurrent.atomic.AtomicInteger;public class LockFree {private static final int COUNT = 10_0000_0000;private static final AtomicInteger ai = new AtomicInteger(0);public static void main(String[] args) throws Interr

2021-01-19 23:46:29 435

原创 javaFX项目--本地文件搜索1

package file_scan;import java.io.File;import java.util.LinkedList;import java.util.Queue;public class Main {public static void main(String[] args) {//File root = new File(“D:\课程\2021-1-17-春招冲刺班-项目1\mysearcher”);File root = new File(“D:\课程”); //

2021-01-18 22:44:22 419

原创 javaFX的学习

package sample;import javafx.application.Application;import javafx.event.EventHandler;import javafx.fxml.FXMLLoader;import javafx.geometry.Pos;import javafx.scene.Parent;import javafx.scene.Scene;import javafx.scene.control.Button;import javafx.sce

2021-01-17 22:08:32 123

原创 代码练习1-14

import java.util.*;public class Main1 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {String s = sc.next();int length = s.length();if (length <= 8) {System.out.println(“NG”);}char[] chars = s.

2021-01-16 23:22:41 45

原创 进制转换

10进制转化其他进制10进制转2进制 Integer.toBinaryString(n); 一个二进制字符串.10进制转8进制 Integer.toOctalString(n); 一个八进制字符串10进制转16进制 Integer.toHexString(n); 一个16进制字符串10进制转 r 进制 Integer.toString(100, 16); 一个r进制字符串如果数值过大可以使用Long类型 Long.toBin.

2021-01-15 23:33:17 78

原创 Linux初学

public class Hello {public static void main(String[] args) {System.out.println(“Hello World”);}}import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.Scanner;public class MyCat {// 1. 参数中有文件路径,把路径对.

2021-01-13 22:30:05 53

原创 TCP-IP,路由,地址

TCP的发送量控制:接收端处理数据的速度是有限的. 如果发送端发的太快, 导致接收端的缓冲区被打满, 这个时候如果发送端继续发送, 就会造成丢包, 继而引起丢包重传等等一系列连锁反应. 因此TCP支持根据接收端的处理能力, 来决定发送端的发送速度. 这个机制就叫做流量控制(Flow Control);TCP引入慢启动机制, 先发少量的数据探探路, 摸清当前的网络拥堵状态, 再决定按照多大的速度传输数据当TCP开始启动的时候, 慢启动阈值等于窗口最大值;在每次超时重发的时候, 慢启动阈值会变成原来的一

2021-01-12 21:05:28 132

原创 迟来的每日se训练

import java.util.*;//编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前class ListNode {int val;ListNode next = null;ListNode(int val) { this.val = val;}}public class Partition {public ListNode partition(ListNode pHead, int x) {// write code hereL

2021-01-10 20:28:02 92

原创 项目练习--博客

项目练习:项目原型:原型图设计,完成分析原型图,考虑系统设计前端的基本框架,封装的内容后端数据库设计,前后端接口设计前端:html+js+jquery+css后端:ControllerControllerAdvice统一异常处理,统一响应格式HandlerInterceptor完成用户会话管理–前端控制逻辑:只校验给定需要登录的页面,返回首页–后端控制逻辑:排除不登录允许访问的接口,返回json,401状态码开发步骤:搭建环境:jdk,idea,maven,mysql,Sprin

2021-01-09 21:13:11 85

原创 @ControllerAdvice

@ControllerAdvice@ControllerAdvice注解(控制器切面)定义的类,会自动注册为一个Bean对象,将扫描指定包中带@Controller注解的类:在客户端发起请求,映射到控制器方法时,结合其他注解或接口完成统一的功 能。注:可以不指定扫描的包,对容器中所有@Controller生效应用一:统一异常处理@ControllerAdvicepublic class ExceptionAdvice {//自定义异常报错错误码和错误消息 @ExceptionHandler(

2021-01-08 22:54:36 592

原创 TCP连接

TCP连接三次握手,四次挥手只有连接(本侧的连接对象)状态处于ESTABLISHED才可以把应用层的数据发送TIME_WAITMSL是TCP报文的最大生存时间, 因此TIME_WAIT持续存在2MSL的话,就能保证在两个传输方向上的尚未被接收或迟到的报文段都已经消失(否则服务器立刻重启, 可能会收到来 自上一个进程的迟到的数据, 但是这种数据很可能是错误的); 同时也是在理论上保证最后一个报文可靠到达(假设最后一个ACK丢失, 那么服务器会再重发一个 FIN. 这时 虽然客户端的进程不在了, 但是

2021-01-07 23:30:35 99

原创 TCP 和UDP

UDP协议UDP的特点无连接: 知道对端的IP和端口号就直接进行传输, 不需要建立连接;不可靠: 没有确认机制, 没有重传机制; 如果因为网络故障该段无法发到对方, UDP协议层也不会给应用层返 回任何错误信息;面向数据报: 不能够灵活的控制读写数据的次数和数量注意:UDP协议首部中有一个16位的最大长度. 也就是说一个UDP能传输的数据最大长度是64K(包含UDP首部). 如果我们需要传输的数据超过64K, 就需要在应用层手动的分包, 多次发送, 并在接收端手动拼装;基于UDP的应用层协议

2021-01-06 23:58:30 48

原创 服务端与客户端的简单代码实现

import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;import java.util.Scanner;public class 一个简单的HTTP客户端 {public static void main(String[] args) throws IOException {// HTTP 请求 = 请求行 + 请求头们 + 可选的请求体

2021-01-05 23:29:35 399 2

原创 拦截器

package org.example.config.interceptor;import com.fasterxml.jackson.databind.ObjectMapper;import org.example.model.JSONResponse;import org.example.model.User;import org.springframework.http.HttpStatus;import org.springframework.http.MediaType;import

2021-01-04 22:42:56 68

原创 线程池,Callable,ArrayBlockingQueue,MyArrayBlockingQueue通知机制

package com.peixinchen;import java.util.concurrent.*;import java.util.concurrent.ArrayBlockingQueue;public class 线程池演示 {static class MyRunnable implements Runnable {@Overridepublic void run() {for (int i = 0; i < 100000000; i++) {System.out.prin

2021-01-03 23:08:21 187

原创 SpringMVC控制器方法支持的参数类型

控制器方法支持的参数类型首先定义一个控制器,使用@RestController,根据方法返回值类型,返回字符串网页,或是 json 序列 化对象:package org.example.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;Import org.springframework.web.bind.annotation.RestController;@RestController@R

2021-01-02 23:58:07 791

原创 线程安全(三个条件)Synchronzied,wait和notify

原子性内存可见性代码重排序线程不安全:运行结果和预期结果之间出现概率性概率性的来源:线程切换的随机性经过三个条件的放大:原子性/内存可见性/代码重排序代码实践ArrayList如何设计代码,进而使得代码具备线程安全问题思考:线程安全是什么?随机性来自何处?随机性如何传递出来?JVM内存区域划分的共享和私有?实践:a) 哪些情况需要写多线程代码?b) 写了多线程之后,哪里出现线程安全的风险了?c) 如何对风险进行保护?锁机制原子性+可见性+代码重排序起到一定的保护S

2021-01-01 23:50:59 326 2

原创 SpringMVC练习代码1

debug=true设置打印日志的级别,及打印sql语句#日志级别:trace,debug,info,warn,error#基本日志logging.level.root=INFO#扫描的包:druid.sql.Statement类和frank包logging.level.druid.sql.Statement=ERRORlogging.level.org.example=DEBUG美化JSON数据格式spring.jackson.serialization.indent-output=tr

2020-12-28 22:32:04 197

原创 SpringMVC

SpringMVCSpringMVC框架围绕 DispatcherServlet(前端控制器) 这个核心展开, DispatcherServlet 是 SpringMVC框架的总导演、总策划,它负责截获请求并将其分派给相应的处理器处理MVC(Model View Controller)是软件工程中的一种软件架构模式,它把软件系统分为模型、视图和控制器三个基本部分Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。 通常模型对象负责在数据库中存取数据。View(视图)是应用程序中处理数据显示

2020-12-27 23:48:29 130 1

原创 穿插按键绑定事件

穿插按键绑定事件新增按钮实行跳转页面,修改和新增公用一个页面实例:<input type="button" value="新增" onclick="addArticle()" />let content = “”;//新增按钮只需要一个,修改和删除和文章进行绑定//content拼接的内容加上按钮,需要根据id绑定事件,事件中做ajax请求for (let i in data) {content += “”content += data[i].title;

2020-12-26 23:02:48 76

空空如也

空空如也

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

TA关注的人

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