自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 22届SHEIN校招面试--JAVA开发工程师面经

这里写自定义目录标题个人背景性格测评+笔试一面 8.30 同事面二面 9.08 tl面三面 9.13 hr面四面 9.16 部门总监面五面 9.25 CEO面面试总结+实习期的感受今年一月,我投递了shein的Java实习岗位,当时没有准备充分,没有通过面试。今年九月,我卷土重来,顺利通过Shein提前批的五轮面试。现在已经提前去shein实习,成为一名光荣的sheiner了。先提前打个广告,shein的2022届的春招和2023届的实习招聘年后就会火速开启,使用我的内推码(NTAJPas) 投递的话,

2021-12-22 16:55:40 5192 4

原创 Netty源码分析(六)pipeline初始化,handlerContext添加和删除handler,inbound和outbound事件的传播

pipeline初始化创建channel的时候创建pipeline创建tail和head 两个ChannelHandlerContext 并连接起来,成为一个双向链表一个channel对应一个pipelineclass AbstractChannel { protected AbstractChannel(Channel parent) { this.parent = parent; id = newId(); unsafe = newUn

2021-08-25 21:53:51 369 1

原创 Netty源码分析(五) Netty检测新连接,并注册到workgroup的nioeventLoop线程,最后更新selector状态

新连接处理逻辑检测新连接创建NioSocketChannel分配线程和注册Selector向Selector注册读事件检测新连接bossGroup线程不断轮询,一有连接接入会调用processSelectedKey 方法获取通道上就绪的事件,关心连接事件连接并把缓冲区的写事件全部释放出去class NioEventLoop { private void processSelectedKey(SelectionKey k, AbstractNioChannel ch) {

2021-08-24 20:57:21 318

原创 Netty源码分析(四) NioEventLoop探究,线程创建器,执行器,启动,轮询io事件,处理io事件,优化任务队列,定时队列

上文提到了Netty创建Nio线程的过程,本文将更深入的了解EventLoopEventLoop事件循环通过不停的轮训事件集合,去处理所有的事件NioEventLoopGroup里面的线程创建器传入一个默认线程工厂 //底层实现了自己的ThreadFactory,继承于juc的ThreadFactory 每次执行任务都会新增一个线程实体线程命名为NioEventLoop - 1-xx(第一个NioeventLoop)class Test { public static voi

2021-08-18 20:25:45 390

原创 Netty源码分析(三)channel,创建channel,初始化channel,绑定端口,唤醒回调事件

ChannelNetty的抽象了一个顶层接口Channel相比原来NIO提供的Channel有更多的功能,当然也是相对复杂的。Java NIO包下的channelJavaNIO包下的channel 做了三层封装最顶层的Channel只封装了关和开两种状态第二层SelectableChannel封装了和Selector交互的状态第三层封装了具体的业务类Netty的channel继承图做了四层封装第一层channel抽象了所有的channel的公共行为第二层c

2021-08-09 20:57:33 932

原创 Netty源码分析(二),Netty中的future和Promise,DefaultPromise的实现

JUC包中的futureclass Test { public static void main(String[] args) { FutureTask<Boolean> hTask = new FutureTask<>(() -> { System.out.println(getCurrentThreadName() + "---------"); System.out.println("洗好茶壶");

2021-07-24 21:03:58 332 1

原创 Netty源码分析(一),Reactor模型,创建Nio线程组的过程

Reactor 模型Reactor适用于同步io事件分离者等待某个事件或者另外一个操作的状态发生分离者就会将事件传给回调函数处理经典Reactorreactor 将Io事件转发给对应的handleracceptor 处理连接事件Netty的Reactor 模型使用多Reactor模型一个Reactor监控所有的连接请求多个子Reactor监控处理读写请求一个子Reactor属于独立的线程,每个成功连接的Channel的操作只由一个线程处理,避免了不必要的上下文切换。

2021-07-22 21:32:16 188 1

原创 Mysql简介,B+树索引结构,数据页结构,索引生效和失效

服务器处理客户端请求处理连接查询缓存语法解析查询优化存储引擎文件系统连接管理客户端请求->服务器创建一个进程处理交互客户端断开,服务器缓存线程给新的客户端。使用SSL网络连接进行通信。查询缓存将刚处理后的请求和结果缓存起来,如果有同样的请求就返回相同数据可以在不同的客户端之间共享。缓存命中请求完全匹配字符如果请求包括系统函数、用户自定义变量、函数、系统表就不会命中缓存。缓存失效缓存系统监控每一张表如果结构或者数据被修改就会判断为缓存失效。语法解析判断SQ

2021-07-14 21:08:21 250 1

原创 刷题记录 剑指offer03-10

03 - 数组中重复的数字找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000解法一 计数器思路维护一个新的数组 用下标代表元素 遍历数组元素 将对应下表的计数器增加如果大于1 即为重复的数据缺点:空间占有率

2021-03-18 11:29:02 98 1

原创 Netty入门,NIO,BIO,三大组件

NettyNetty是什么Netty是由JBOSS提供的一个java开源框架,现为 Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户、服务器端的编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程,例如:基于TCP和UDP的socket服务开发。“快速”和“简单”并

2021-02-06 15:05:37 257

原创 刷题记录01-- 输入一串字符进行统计 最后排序输出

输入一串字符对字符中的各个英文字符(大小写分开统计),数字,空格进行统计,并按照统计个数由多到少输出,如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。输入输出输入: aadddccddc输出: dca思路1.循环输入2.输入字符判断 如果属于字符就对对应的键自增3.重写比较器方法4.最后从头到尾输出键代码public class Main { public static void main(String args[]) {

2021-01-24 16:41:39 150

原创 树莓派实现内网穿透

树莓派实现内网穿透一、实验材料能连上公网的树莓派、一台具有公网ip的云服务器二、实验原理使用frp服务作为内网穿透,云服务器作为frp服务端,开放一个端口作为流量转发,不同网段的设备可通过云服务器的端口连接到树莓派frp 一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。为什么使用 frp ?通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网

2020-12-27 23:39:34 3027

原创 Es6语法,VUE快速入门(一)

ES6JavaScript的下一代标准与JavaScript的关系Es6是js的规格标准,js是Es6的一种实现ES6和ES5ES6代码简洁,es5的代码复杂ES6的浏览器兼容性很差,ES5的代码浏览器兼容性很好<script> //let为局部变量定义 { var a = 0; let b = 1; } console.log(a); console.log(b);</script>&l

2020-12-26 23:34:08 324 1

原创 面试问题准备(一),单例模式实例,类初始化和实例初始化,方法的参数传递,bean的作用域

写一个单例模式实例定义某个类只能在jvm存在一个实例并给别人使用只能存在一个实例 -->构造器私有化它必须自行创建这个实例 -》静态变量保存向整个系统提供这个实例 -》方法暴露出实例接口分类饿汉式直接实例化枚举式静态代码块饿汉式懒汉式线程不安全线程安全静态内部类饿汉式直接实例化public class Single { //1.构造器私有化 private Single(){ } //2.静态变量存储实

2020-12-25 21:08:36 317

原创 Redis进阶,事务,整合springboot 配置文件,持久化rdb aof,发布订阅,主从复制,哨兵模式,缓存穿透和雪崩

事务ACID原则要么同时成功,要么同时失败但Redis单条命令保证原子性,但事务不保证原则性Redis事务:一组命令一起执行,按照队列的顺序执行一次性,顺序性,排他性redis事务没有隔离级别的概念类比缓存,只有发行期执行命令的时候才会执行流程开启事务 multi命令入队 …执行事务 exec127.0.0.1:6379> multiOK127.0.0.1:6379> set k1 v1QUEUED127.0.0.1:6379> set k1 v2QU

2020-11-19 00:20:35 637 2

原创 redis入门,nosql,linux安装,测试性能,redis基础知识,Redis八大数据类型

redisRedis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave主从同步用处内存存储,持久化(rdb,

2020-11-10 19:50:39 188

原创 Verilog8位并行乘法器设计,数码管动态扫描,分时复用

本代码仅供学习参考实验要求8位并行乘法器主要功能要求:按键1,异步复位按键2,流水灯,6个数码管显示学号后六位按键3,调节8位乘法器的输入X,X显示到左边前2个数码管按键4,调节8位乘法器的输入Y,Y显示到中间2个数码管按键5,求值,按下后,计算X乘以Y的结果,用Z表示,并显示到数码管按键6,X从00开始自动递增到FF,Y从00开始自动递增到FF,计算乘法结果,输入输出均要显示,显示尽量有几秒钟的时间,能够在验收时看的清楚(不一定从0开始递增,可自行设定初值)

2020-10-21 16:04:23 2554 2

原创 MyBatisPlus入门,crud扩展,主键生成策略,乐观锁,分页查询,条件构造器,代码自动生成器

MyBatisPlus简介mybatisi - plus是MyBatis的一个强大的增强工具包,用于简化开发。这个工具包为MyBatis提供了一些高效、有用、开箱即用的特性,使用它可以有效地节省您的开发时间。可以简化CRUD代码特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作。BaseMapper强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部

2020-10-08 20:51:41 439

原创 一次校内java实习岗面试记录

一次校内java实习岗面试记录Java基础部分Java8大基本类型int,double,long,short,char,float,Boolean,byteString是基本数据类型吗String不是基本类型,是一个final修饰的类,String类包含了很多常用方法,所以不是基本数据类型为什么Java只有单继承没有多继承避免多继承带来的方法混乱,跟现实世界抽象吻合,一般只有一个父类对象,同时Java拥有多接口实现,可以实现多个约束从技术的角度来说,是为bai了降低复杂性。例如,A类中du有

2020-09-25 15:56:19 221

原创 单例模式,工厂方法模式,抽象工厂模式,模板方法模式

单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供整个实例代码实现public class Singleton { //private限定初始化,保证自动初始化且只初始化一个对象 private static final Singleton singleton=new Singleton(); //私有化构造函数,防止创建多个变量 private Singleton() { } //提供给外部访问这个对象 pu

2020-09-16 22:53:15 209

原创 表,队列,栈入门

表表的定义形如 A0A_0A0​ ,A1A_1A1​ ,…,AN−1A_{N-1}AN−1​的一系列数据表的简单数组实现public class Array { public static void main(String[] args) { int []arr =new int[10]; //生成一个两倍的新数组 int []newarr= new int[arr.length*2]; for (int i=0;i< a

2020-09-01 23:10:40 153

原创 SpringMvc入门,Restful风格

HelloSpringMvcweb.xml配置<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http

2020-09-01 12:42:53 95

原创 Swagger快速入门 集成到springboot中

Swagger简介Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法、参数和模型紧密集成到服务器端的代码,允许 API 来始终保持同步。Swagger 让部署管理和使用功能强大的 API 从未如此简单。Restful Api文档在线自动生成工具Spring boot集成swaggerswagger2 swaggerui导入依赖<dependency>

2020-08-25 15:28:01 195 1

原创 JavaScript面向对象编程,操作bom,dom,表单,jquery入门

面向对象编程原型:在JavaScript中,每个对象都有一个proto属性,这个属性指向该对象的原型。原型对象可以理解为父类Class创建对象 //原生给JS对象增加方法function Student(name){ this.name= name;}Student.prototype.hello = function (){ alert('hello');}//使用class创建对象 class Student1{ constructor(name) {

2020-08-24 19:45:36 179

原创 JavaScript快速入门,基本语法,数据类型,函数,内部对象

什么是JavaScript一门脚本语言,可以在浏览器上直接解释ECMAScipt一个JavaScript的标准,最新版本到es6快速入门<!--在script标签内,写javascript代码 弹出helloword--><script> alert("helloworld");</script>也可以把JavaScript语句放在js文件中,再引用 <script src="js/tc.js"> </scrip

2020-08-18 19:26:08 130

原创 Springboot入门 微服务,启动器,主程序启动,yaml语法,thymeleaf模板引擎

什么是SpringBoot​ Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置,拒绝xml配置,解决SSM的配置第i与问题​ 能够迅速开发web应用​ 核心:自动装箱Springboot的特点约定大于配置继承了大量常用的第三库配置:Redis,MongoDB,JPa,RabbitMQ,Quartz内嵌式容器简化web项目没有多余代码生成和x

2020-08-15 11:22:16 273

原创 Spring注解开发,用JavaConfig配置spring 静态代理和动态代理,Spring实现aop

使用注解开发类的注入@Component //等价于<bean id="user" class="com.lyc.pojo.User"/> //组件,放在类上,说明这个类被Spring管理了 <!--指定要扫描的包,包下的注解就会生效--> <context:component-scan base-package="com.lyc.pojo"/>属性的注入放在属性上方@value@Value("lyc")private Str

2020-08-04 21:12:40 392 1

原创 Spring入门 IOC理论,第一个spring程序Di依赖注入,Bean的自动装配

简介spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。Spring的组成Spring Core 核心容器核心容器提供Spring框架的基本功能,Spring以bean的方式组织和管理java应用的各个组件和关系使用BeanFactory来产生和管理BeanSpringCont

2020-08-03 10:49:59 186 1

原创 Mybatis模糊查询和配置解析

模糊查询java代码执行的时候,传递通配符% %List<User> getUserLike(String name);<select id="getUserLike" resultType="com.lyc.pojo.User"> select * from user where name like #{value}</select>public void getUserLike(){ SqlSession sqlSessi

2020-07-30 11:10:04 355

原创 Mybatis入门,第一个Mybatis程序,Mybatis实现增查改删

简介MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。获得Mybatis通过maven导入依赖Gayhub上下载为什么需要Mybatis简洁完成JDBC代码框架:封装了很多代码,只需要专注于实

2020-07-29 15:30:42 163

原创 注解,反射,类加载内存方式,反射操作注解

注解,反射,类加载内存方式,反射操作注解注解的简介什么是注解Annotation不是程序本身,可以对程序做出解释可以被其他程序读取Annotation的格式@注释名例:@OverrideAnnotation在哪里使用可以附加在package,class,method,field上面,相当于给他们添加了额外的辅助信息我们可以通过反射机制编程实现对这些元数据的访问内置注解@Override:表示一个方法声明打算重写超类中的另一个方法声明@Deprecated:表示不鼓励程序

2020-07-27 16:54:33 202

原创 Cookie和Session,JSP,JSP和EL表达式

Cookie和Session,JSP,JSP和EL表达式会话**会话:**用户打开了一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器的过程有状态会话:带着用户身份进行会话网站怎么标识用户的身份?服务端给客户端一个cookie,客户端下次访问服务端带上cookie服务器登记cookie,下次cookie来匹配用户保存会话的两种技术Cookie客户端技术(响应和请求)源码分析public class Cookie implements Cloneable, Serial

2020-07-22 14:19:01 161

原创 DNS,P2P,TCP套接字编程

DNS,P2P,TCP套接字编程DNSDNS提供的服务同一台用户主机上运行着DNS应用的客户机端。该浏览器从上述URL中抽取出主机名wWw. someschoo1,edu,并将这个主机名传给DNS应用的客户机端。该DNS客户机向DNS服务器发送一个包含主机名的请求。该DNS客户机最终会收到一份回答报文,其中含有对应于该主机名的IP地址。一旦该浏览器接收到来自DNS的IP地址,它就可以向由该IP地址定位的HTTP服务器发起一个TCP连接。DNS协议运行在UDP之上, 使用53号端口。D

2020-07-21 14:14:55 439

原创 HTTPservlet简单学习:下载文件,验证码动态图片生成,请求重定向

Java web学习Maven背景:javaweb开发中需要大量的jar包让一个东西自动导入和配置jar包Maven:架构管理工具**核心思想:**约定大于配置有约束,不要去违反Maven会规定你该如何去编写java代码Servlet简介sun公司开发动态web的一门技术Sun在这些api中提供了一个接口,叫做Servlet编写类,实现Servlet接口部署到web服务器中ServletContext对象web容器在启动的时候,它会为每一个web程序都创建一

2020-07-20 21:36:15 132

原创 计算机网络应用层协议部分学习

计算机网络学习第二章,应用层协议部分应用层协议原理研发网络应用程序的核心是写出能够运行在不同的端系统和通过网络彼此通信的程序。例如,在Web应用程序中,有两个互相通信的不同的程序:一个是运行在用户主机(桌面机、膝上机、PDA、蜂窝电话等)上的浏览器程序;另一个是运行在Web服务器主机上的Web服务器程序。又比如P2P文件共享系统,在参与文件共享的每台主机中都有一个程序。在这种情况下,每台主机中的这些程序可能都是类似的或相同的。网络应用程序体系结构各种端系统上组织该应用程序。在选择应用程序体系结构

2020-07-18 14:10:01 457

原创 Docker镜像学习,构建jdk+tomcat镜像

Docker镜像学习什么是镜像镜像是可执行的独立软件包,包括代码,运行时的库,环境变量和配置文件所有的应用直接打包成docker镜像,可以直接跑起来。如何得到镜像Docker pull从别人获取自己打包制作镜像 DockerFileUnionFS(联合文件系统)分层下载镜像的层目的是公用资源重复利用UnionFS:分层,轻量,高性能的文件系统,支持对文件系统的修改作文一次提交达到一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。Docker镜像可以通过分层来进行继承,可以制

2020-07-17 16:18:37 748

原创 docker 学习,安装,部署

docker 学习docker 为什么出现没有docker传统开发的问题开发,上线两套环境,对开发和运维产生问题版本更新,导致服务不可用环境配置麻烦windows开发和Linux服务器不一样多个应用端口冲突,配置冲突通过docker把项目和环境捆绑起来,解决以上问题java -jar(环境) 打包项目带上环境(镜像)运行镜像。使用Docker的好处应用更快速的交付和部署传统:帮助文档,安装程序docker :打包镜像发布测试更便携的升级环境更方便的升级更简单的系统运维

2020-07-16 10:12:27 249

原创 计算机网络自顶向下方法第一章学习

第1章计算机网络和因特网什么是因特网公共因特网是一个世界范围的计算机网络互联了遍及全世界的数以百万计的计算设备的网络,这些计算设备多数是传统的桌面PC、 基于Lhux的工作站以及所谓的服务器(它们用干存储和传输web冗面和电子邮件报文等信息所有这些设备都称为主机(host)或端系统( end system)端系统通过通信链路(communication link)和分组交换机(packet switch)连接到一起,这些物理媒体包括同轴电缆、铜线、光纤和无线电频谱。不同的链路以不同的速率传输数据

2020-07-14 22:30:12 1027

原创 verilog 实现多功能数字钟,定时,报时,校时功能

实验4:数字钟的设计与仿真实验框图设计实验目的优化第8章数字钟的程序,优化的具体内容主要是与时钟相关,采用同源时钟,经过严格的计数器分频后再连接到所有触发器,时钟不能经过多路选择器直接连接到触发器的时钟端编写测试激励,对数字钟进行仿真,要求仿真到的内容有:时分秒、电台报时、定时闹钟、分频,调整时间等,用modelsim完成仿真在quartus新建一个工程,完成编译、综合、器件和引脚分配,生成sof和pof文件,下载#实验内容六十进制和二十四进制搭建十进制计数器设计module cou

2020-06-23 18:07:56 13597 14

原创 jdbc 第一天

jdbc基本环境mysql connector for java安装jar包导入建立连接导包步骤(eclipse中)右键project-〉property-〉java bulid path-〉libaries->add external jars;初始化驱动如果没有导包,会抛出ClassNotFoundExceptiontry{ Class.forNam...

2020-06-12 16:38:02 119

空空如也

空空如也

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

TA关注的人

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