
java闭关修炼
文章平均质量分 85
likeGhee
天人合一
展开
-
闭关修炼(二十五)基础web安全
不是特别难,主要是积累经验赶紧学springboot去了,好拖延啊。捂脸文章目录表单重复提交前端解决方法接口如何防止模拟http请求使用Filter防止XSS攻击SQL注入常见的攻击有哪些?SQL注入,XSS,CSRF(和表单重复提交是一个类型)最基本的WEB安全防范:密码设为英文+数字+特殊符号,访问白名单表单重复提交表单重复提交十分常见,如果什么防范都不做的话,那肯定是不好的表单重复提交主要原因是网络延迟简单的处理办法是前端使用token但是无法防止模拟http请求先模拟问题发原创 2021-01-27 19:24:20 · 273 阅读 · 0 评论 -
闭关修炼(二十四)浅入了解跨域问题
本来想说是深入研究一下,但是水平有限,也就是手放在水面往下多0.25厘米的深度的样子,掠于皮毛。文章目录什么是跨域问题跨域问题模拟跨域问题如何解决response添加请求头解决跨域问题jsonp解决跨域问题httpclient内部转发解决跨域问题写在后面什么是跨域问题跨域其实是浏览器的一个安全机制,请求访问域名与AJAX请求地址不一致,浏览器会无法返回请求结果。具体的例子,现在我在浏览器访问url地址www.aaa.com/a,而这个页面后台服务器又发送请求给www.bbbb.com/b,因为原创 2021-01-25 22:20:53 · 354 阅读 · 0 评论 -
闭关修炼(二十三)浅入了解http协议
文章目录HTTP概述同步与异步HTTP请求组成使用时间戳解决浏览器缓存不一致问题防盗链技术HTTP响应码重定向与转发的原理HTTPS和HTTP区别HTTPS连接过程SSL证书认证长连接和短连接HTTP概述http协议是对浏览器客户端和服务器端之间数据传输的格式规范客户输入url,向服务器发送请求request,服务器响应客户端response,同步与异步在BS架构(HTTP)中同步和异步的概念和多线程是不一样的。在HTTP中同步应该理解为请求立马响应的过程。如果请求时服务器在工作,服务器立即响原创 2021-01-24 23:16:53 · 225 阅读 · 0 评论 -
闭关修炼(二十二)session和cookie原理
文章目录简述cookie如何创建cookie如何获取cookiecookie原理session如果创建session如何获取sessionsession原理边角料简述cookie和session是开发中常用的记录状态的机制。相同点:他们两个都可以用来存私密的东西,同样也都有有效期的说法。cookie和session都是用来跟踪浏览器用户身份的会话方式。不同点:cookie数据保存在客户端,session数据保存在服务器端。session是放在服务器上的,过期与否取决于服务器的设定,c原创 2021-01-24 01:26:01 · 438 阅读 · 0 评论 -
闭关修炼(二十一)Servlet生命周期、service方法源码分析、线程安全问题
文章目录Servlet的生命周期Servlet简单源码分析Servlet多线程安全问题Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。Servlet的生命周期init–初始化service–do、postdestroy–销毁例子:public class DemoServlet extends HttpServlet { @Override原创 2021-01-23 23:59:20 · 286 阅读 · 3 评论 -
闭关修炼(二十)如何做好单元测试
很久很久以前拜读了一下狗头师兄的单元测试文章https://blog.youkuaiyun.com/qq_36652619/article/details/105364869(现在竟然收费了没得看了),于是写一下自己的心得吧文章目录什么是单元测试组织测试用例Junit常用的断言如何对Exception进行测试如何进行参数化测试如何进行超时测试特殊注解Before和AfterBeforeClass和AfterClass单元测试的优点原则使用mock对象什么是mock?为什么要使用mock?处理遗留代码策略模拟服务器M原创 2021-01-22 18:16:45 · 355 阅读 · 0 评论 -
闭关修炼(十九)Mysql优化
文章目录数据库三大范式1F2F3F分表分库水平分割取模算法案例定位慢查询执行计划索引索引分类索引底层原理SQL语句优化mysql如何调优?这是面试时常问的问题,主要有这些方面:范式设计数据库分表分库定位慢查询索引优化索引原理SQL优化数据库读写分离零碎的知识:having、存储过程、触发器、函数mysql如何实现优化?数据库设计合理(需要经验)添加索引(普通索引、主键索引、唯一索引、全文索引)分表分库(取模分表、水平分割、垂直分割)读写分离存储过程配置mysql最大连原创 2021-01-20 11:18:29 · 430 阅读 · 0 评论 -
闭关修炼(十八)maven
回家了,学习依旧之前写了一篇关于maven的https://blog.youkuaiyun.com/qq_19841133/article/details/109479902文章目录Maven概述作用依赖管理项目构建功能传统项目仓库类型maven的配置maven约定java工程转换为maven工程Maven概述Maven 即项目对象模型(POM,Project Object Model),它可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。它包含了一个项目对象模型,一组标准集合,一个原创 2021-01-16 12:35:28 · 628 阅读 · 0 评论 -
闭关修炼(十七)Tomcat配置调优和Jmeter测试
文章目录Tomcat压力测试Jmeter压力测试工具下载使用测试Tomcat参数调优测试-串行回收Tomcat参数调优测试-并行回收Tomcat压力测试Jmeter压力测试工具Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。下载https://jmeter.apache.org/download_jmeter.cgi下载binaries包,而不是src包。使用下载后,解压,再双击原创 2021-01-14 22:13:18 · 418 阅读 · 0 评论 -
闭关修炼(十六)垃圾回收机制
文章目录垃圾回收机制什么是垃圾回收机制?finalize()和System.gc()垃圾回收简要过程内存溢出与内存泄漏内存溢出和内存泄漏的区别?垃圾回收机制算法1. 引用计数算法什么是引用计数法缺点2. 复制算法什么是复制算法优缺点3. 标记清除什么是标记清除算法4. 标记压缩什么是标记压缩算法作用区域5. 分代收集什么是分代收集算法为什么垃圾回收机制频繁执行会降低程序执行效率?垃圾回收机制什么是垃圾回收机制?GC(garbage collector)GC不定时清理堆内存中不可达对象。可达与不可原创 2021-01-14 16:21:26 · 581 阅读 · 0 评论 -
闭关修炼(十五)JVM参数调优
文章目录Java虚拟机什么是java虚拟机Java内存结构什么是java内存结构堆垃圾回收机制垃圾回收机制的作用Java虚拟机什么是java虚拟机所谓虚拟机,就是一台虚拟的机器,它是一款软件,用来执行一系列虚拟计算指令,他们完全是对物理计算的仿真,提供了一个可以运行完整操作系统的平台。java虚拟机,它专门为执行单个计算程序而计算,在java虚拟机中执行的指令我们称为java字节码指令。在虚拟机上运行的软件都限制于虚拟机提供的资源中。Java内存结构什么是java内存结构JVM虚拟机存储空原创 2021-01-14 07:03:05 · 233 阅读 · 0 评论 -
闭关修炼(十四)序列化
序列化什么是序列化将对象序列化成二进制文件,保存在外存中。什么是反序列化将二进制文件反序列化为对象运用场景rpc远程调用,springcloud,dubbo自定义序列化系列化有哪些协议?这个问题和有什么数据交换格式是一样的。json和xml协议,当自定义序列化时,相当于要自定义报文头和报文体的规范,而常用的规范就是json和xml除此之外还有Thrift和Protobuf等等...原创 2021-01-13 14:36:57 · 135 阅读 · 0 评论 -
闭关修炼(十三)Netty5.0
Netty5Netty有很多版本,在4的时候就有巨大的革命,很多API改了,但是基本是相同的。官方说5不安全。TCP粘包、拆包用netty3代码特别复杂,netty4只用分隔符进行区分就行了,比较容易一些。jar包 <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId>原创 2021-01-13 14:11:18 · 651 阅读 · 1 评论 -
闭关修炼(十三)Netty入门
文章目录阻塞IO与非阻塞IO的区别同步、异步与阻塞、非阻塞阻塞与非阻塞什么是同步阻塞IO什么是伪异步阻塞IO什么是同步非阻塞IONIO的缺点什么是异步非阻塞IONIO客户端与服务端选择器keyNIO服务端NIO客户端Netty快速入门什么是netty?netty的应用场景为什么会有nettynetty案例实现导入jarNetty服务端Netty客户端阻塞IO与非阻塞IO的区别同步、异步与阻塞、非阻塞NIO有两个重要的组合:通道和缓冲区,通道是传输数据,缓冲区来存放数据。IO流又称为BIO,Bloc原创 2021-01-12 19:57:07 · 557 阅读 · 0 评论 -
闭关修炼(十二) NIO
文章目录NIO什么是NIO缓冲区什么是缓冲区?ByteBuffer-HeapByteBuffer类源码解析ByteBuffer例子mark和resetmark例子直接缓冲区和非直接缓冲区哪一种缓冲区更为安全?简易病毒制作IO 缓冲区通道什么是NIO通道?Channel例子NIO什么是NIONew IO的简写。NIO是一个可以替代标准java IO API的IO API(JKD1.4),在IO基础之上进行改进,最大改进在NIO有一个非阻塞的IO,面向缓冲区的,原来的IO是阻塞的,面向流的。NIO效原创 2021-01-11 21:29:21 · 321 阅读 · 2 评论 -
闭关修炼(十一)网络通信
你问我互联网工程设计学了啥?emm。。。感觉上课都在照着抄代码,要说什么印象特别深,脑海里还真没剩啥了。文章目录网络通讯IP端口号客户端和服务端TCP与UDP什么是网络模型TCP和UDP的区别oUDP的客户端与服务端通讯例子网络通讯IP定位某台计算机端口号定位某个应用程序客户端和服务端发起请求端为客户端,发送响应端为服务端TCP与UDP什么是网络模型4层,应用层(HTTP协议),传输层(TCP,UDP协议),网络层(IP协议),链路层(以太网协议)任何计算机语言通讯,底层都使用s原创 2021-01-11 13:45:24 · 188 阅读 · 1 评论 -
闭关修炼(十)代理设计
之前写了一篇了:https://blog.youkuaiyun.com/qq_19841133/article/details/109695223文章目录代理设计模式什么是代理设计模式静态代理JDK动态代理CGLIB动态代理JDK动态代理的Cglib动态代理的区别了解springAOP代理设计模式什么是代理设计模式是一种结构型设计模式,为某个对象提供一个代理类,以控制对该对象的访问。AOP(面向切面)就是用到这个设计模式。静态代理不重复写了https://blog.youkuaiyun.com/qq_1984原创 2021-01-10 14:18:40 · 109 阅读 · 0 评论 -
闭关修炼(十)工厂设计
文章目录工厂设计简单工厂例子工厂设计简单工厂例子我们不用单独去new一个商品,而是通过工厂类传入参数进行获取实例化对象。/** * 冰淇淋接口 * * @author uuz * @date 2021/01/10 */interface IceCream { /** * 得到价格 * * @return float */ float getPrice();}/** * 巧克力冰淇淋 * * @author uuz *原创 2021-01-10 13:27:58 · 100 阅读 · 0 评论 -
闭关修炼(十)单例设计
单例、工厂、代理这些简单的设计模式都应该掌握(手写)文章目录设计模式什么是设计模式?设计模式的作用?23种设计模式设计模式六大原则单例什么是单例懒汉式饿汉式设计模式什么是设计模式?设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。设计模式的作用?重复利用,提高维护性,易于扩展、提高阅读性、减少代码23种设计模式分为三大类,常问的有:创建型 :工厂、单例等结构型 : 代理、适配器等行为型 : 策略模式等单例99%必问设计模式六大原则开闭原则 :原创 2021-01-10 13:07:50 · 162 阅读 · 0 评论 -
闭关修炼(九)注解
之前写了一篇有关于注解的,放一起好了https://blog.youkuaiyun.com/qq_19841133/article/details/108918652文章目录自定义注解什么是注解注解的好处注解分类如何自定义注解?例子乞丐版ORM框架映射什么是ORM实现思路实现乞丐版JPA实现自定义注解什么是注解1.5新增技术,为了简化代码,而大量使用注解,springboot几乎就是面向注解开发了。注解的好处阅读性高,简化代码,提高开发效率注解分类内置注解,jdk自带的注解,如@Overrid原创 2021-01-09 22:15:49 · 184 阅读 · 1 评论 -
闭关修炼(八)反射机制
文章目录反射什么是反射机制?反射机制的作用通过java反射机制创建对象例子使用默认无参构造函数创建对象使用有参构造函数创建对象怎么禁止反射机制?spring中的运用场景jdbc中的运用场景使用反射机制访问方法和属性访问属性访问方法给私有属性赋值乞丐版springIOC实现什么是springIOC?springioc过程springioc创建对象实现思路实现反射什么是反射机制?反射机制就是正在运行(的程序中)动态获取类的所有信息。反射机制的作用反编译:.class -> .java。原创 2021-01-09 16:37:47 · 221 阅读 · 1 评论 -
闭关修炼(七)数据交换格式
比较初级,都不知道要不要发出来…文章目录数据交换格式什么是数据交换格式什么是json?什么是xml?json和xml区别/使用场景?Jsonjson类型java操作json有哪些框架?fastjson数据交换格式什么是数据交换格式通讯的报文,entrys之间通讯需要传递某种格式的报文(参数),常用的数据交换格式有json和xml,html也属于数据交换格式,不过常用来展示页面。某种程度上,可以理解为数据交换格式=报文=参数列表什么是json?很简单的问题,所以表达简单的问题时就更得要突出专原创 2021-01-08 20:52:59 · 465 阅读 · 1 评论 -
闭关修炼(六)各种锁
难者不会,会者不难文章目录java中的锁你听过哪些?悲观锁什么是悲观锁?悲观锁的缺点乐观锁什么是乐观锁?悲观锁和乐观锁的区别?使用场景的区别?重入锁什么现象非重入锁会产生而重入锁不会产生?重入锁有哪些?什么是重入锁可重入锁-synchronized例子可重入锁-ReentrantLock例子重入锁的好处?注意的小点读写锁读写锁的机制?例子java中的锁你听过哪些?悲观锁,乐观锁,分段锁,重入锁,读写锁,CAS锁,排他锁(基本上是自带的功能),自旋锁,分布式锁(muji)悲观锁什么是悲观锁?老原创 2021-01-07 15:18:28 · 326 阅读 · 0 评论 -
闭关修炼(五)线程池
传统艺能,点到为止,如果我都明白的话,我也不在这里了。文章目录线程池什么是线程池?线程池的作用?线程池有哪些创建方式?线程池如何配置合理?创建四种线程池newCachedThreadPoolnewFixedThreadPoolnewScheduledThreadPoolnewSingleThreadExecutor疑问点线程池原理分析说说线程池的原理?线程池执行过程?execute方法源码线程池在平时的项目中经常创建、启动和销毁一个线程都是非常消耗时的,这是因为多线程的运行状态有新建,就绪,运行,原创 2021-01-04 14:41:25 · 251 阅读 · 0 评论 -
闭关修炼(四)并发包/类
传统艺能,点到为止文章目录并发包你接触过哪些线程安全类?你使用过哪些jdk1.5并发包下的类?Vector和ArrayListVector和ArrayList的区别Vector源码ArrayList源码Hashtable和HashMapHashtable和HashMap的区别?Hashtable和HashMap的底层实现?Hashtable put方法源码HashMap put方法源码SynchronizedMap什么是SynchronizedMap?SynchronizedMap原理?Concurre原创 2021-01-03 22:55:01 · 679 阅读 · 2 评论 -
闭关修炼(三)多线程之间的通讯
文章目录多线程之间通讯什么是多线程之间的通讯?生产者与消费者例子如何解决生成者和消费者问题?如何添加同步?wait和notify对上面提到的问题的解决办法?wait和notify的作用?wait和notify的使用条件?使用代码例子notifyAllwait和sleep异同点在哪里?小试牛刀题JDK1.5-Lock什么是Lock接口?Lock锁写法演示代码什么是ReentrantLock锁?Condition类解决wait和notify无法使用问题小试牛刀题如何停止线程用stop方法为什么不好?说说设计停止原创 2021-01-02 21:52:25 · 430 阅读 · 1 评论 -
闭关修炼(二)线程安全问题
?回归初心文章目录什么是线程安全问题?线程不安全例子线程安全问题有什么解决办法?使用同步代码块解决线程安全问题 synchronized什么是线程安全问题?当多个线程共享同一个全局变量,做写的时候(如count++),可能会受到其他线程的干扰,导致数据有问题,这种现象叫做线程安全问题。做读操作的时候,不会导致线程安全问题。多个线程共享一个局部变量,做写的操作,会发生线程安全问题吗?不会,局部变量(run方法中的变量)不是全局的,每个线程里的局部变量不会影响其他线程中的变量。线程不安全例子原创 2021-01-02 01:02:26 · 319 阅读 · 1 评论 -
闭关修炼(一)多线程
寒假了,闭关修炼一会。语文没学好,语义不通实属正常。文章目录线程与进程的区别多线程应用场景继承方式创建多线程同步和异步的概念?同步异步runnable接口创建多线程使用匿名内部类方式创建多线程Callable方式创建多线程线程池方式创建多线程多线程常见APIgetId()getName()sleep()Thread.currentThread()stop()Thread()守护线程与非守护线程设置守护线程多线程运行状态join()方法作用面试题顺序执行T1,T2,T3案例多线程分批处理数据线程与进程原创 2021-01-01 17:01:14 · 198 阅读 · 0 评论