
java提高
文章平均质量分 93
慢慢慢时光
座右铭:think more, code more
联系邮箱:wjl31802@126.com
展开
-
高阶面试-netty部分
Netty 是一个基于 Java 的异步事件驱动的网络应用框架,提供了用于快速开发高性能、高可扩展性的协议服务器和客户端的工具。原创 2024-07-01 07:49:40 · 1130 阅读 · 0 评论 -
jvm终极篇
jvm的学习,数据从字节码到jvm流转的整个过程原创 2022-06-14 10:57:42 · 526 阅读 · 0 评论 -
jwt的学习笔记
跨域认证解决方案,微服务兴起之后,原先基于session来保存用户认证信息转为用jwt等token的模式。资料不用自己再造轮子,重新写相关文档JSON Web Token 入门教程(阮一峰)shiro+jwt+springboot的解决方案补充等之后碰到相关bug,补充到该博文中。...原创 2020-02-28 23:53:29 · 283 阅读 · 0 评论 -
shiro学习笔记
最近在做权限管理相关的代码,用到了shiro,做些总结。Apache shiro,按照官方网站的说法,是个强大且易用的java安全框架,用于执行认证(authentication)、授权(authorization)、加密、session管理。可以方便快速的对任何应用做安全管理。shiro入门官方有10min快速入门,里面引出了几个重要概念。subject...原创 2020-02-28 23:37:10 · 246 阅读 · 0 评论 -
tomcat&jetty笔记1
Tomcat的总体架构两个核心功能:处理socket连接,负责网络字节流和Request和Response对象的转化 加载和管理Servlet,以及具体处理Request请求设计了两个核心组件连接器connector和容器container分别做着两件事,container内部处理,connector对外交流。连接器的设计Tomcat支持的IO模型:NIO非阻塞IO,采用j...原创 2019-11-03 21:33:03 · 248 阅读 · 0 评论 -
HeadFirst设计模式学习笔记01
入门从代码复用,到经验复用。先从简单的模拟鸭子应用说起设计标准OO技术,设计一个鸭子超类SuperClass如果想做个能飞的鸭子,怎么办?直接在超类中添加fly()方法肯定不行,所有的鸭子都会飞了;利用接口flyable的话,其实有些不会叫,需要另外quarkable接口,又需要被迫检查并可能需要覆盖fly()和quark()等接口。需要一个更清晰的方法,让某些(而不是全部)鸭子类型可飞...原创 2019-07-13 15:08:34 · 606 阅读 · 0 评论 -
java提高之ArrayList的源码分析
ArrayList简介ArrayList核心源码ArrayList源码分析System.arraycopy()和Arrays.copyOf()方法两者联系与区别ArrayList核心扩容技术内部类ArrayList经典DemoArrayList简介ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元...转载 2019-06-11 08:42:57 · 529 阅读 · 0 评论 -
java提高之集群概念
整理的不够系统,需要之后再完善1. zookeeper集群奇数个节点,原因:投票机制,选举效率高2. solrcloud1. 概念solrcloud是solr提供的分布式搜索方案,需要大规模、容错、分布式索引和检索能力时用solrCloud。搜索量很大,搜索请求并发很高时采用。基于solr和zookeeper的分布式搜索方案,主要思想是使用zookeeper作为集群的配置信息中心。...原创 2019-06-15 21:19:15 · 7888 阅读 · 0 评论 -
java提高之版本控制系统
二者都有图形化工具1. svn1. 概念1. 介绍SVN是Subversion的简称,开源的集中式管理代码的版本控制系统2. 原理原理是把代码都保存到一个固定的位置(仓库),每次从这个位置拷贝更新代码,进行编辑;再把修改后的代码提交到该目录中。多人协作开发也是如此。因此需要一个类似Oracle或者Mysql的服务器用于保存和管理库文件(要保存的代码等文件)的服务端——VisualS...原创 2019-06-15 16:07:35 · 1705 阅读 · 2 评论 -
TomcatLearning01
针对学习的盲点tomcat进行补充,参考资料为李号双的 深入拆解tomcat&jetty文章目录Web容器的学习路径1. web容器是什么2. 预备知识操作系统原理java语言基础tomcat总体架构tomcat需要实现的功能解决方案连接器connectortomcat支持的IO模型和应用层协议连接器所处位置servlet是如何注册到servlet容器中呢?连接器具体功能Protoc...原创 2019-07-14 16:56:33 · 396 阅读 · 0 评论 -
EffectiveJava读书笔记01
本文为Effective Java中文版的读书笔记,可能部分术语听起来比较枯燥,但术语其实就是最精炼的总结,可以反复琢磨。创建和销毁对象0. 预备知识API相关概念Application Programming Interface,应用编程接口,不要同java的interface混淆。使用API编写程序的程序员被称为该API的用户user,在类的实现中使用该API的类被称为该API的客...原创 2019-07-01 21:24:44 · 486 阅读 · 0 评论 -
EffectiveJava笔记02
文章目录5. 泛型26. 不要用原生态类型概念原生态类型无限制通配符例外27. 消除非受检的警告28. 列表优于数组数组和泛型的不同点29. 优先考虑泛型将类泛型化克服泛型数组报错的两种方法有限制的类型参数30. 优先考虑泛型方法31. 利用有限制通配符来提升API的灵活性32. 谨慎并用泛型和可变参数33. 优先考虑类型安全的异构容器6. 枚举和注解34. 用enum代替int常量int枚举类型...原创 2019-07-07 13:30:00 · 445 阅读 · 0 评论 -
EffectiveJava笔记03
文章目录9. 通用编程57. 将局部变量的作用域最小化58. for-each循环优于传统for循环59. 了解和使用类库60. 如果需要精确的答案,避免使用float和double61. 基本类型优先于装箱基本类型62. 如果其他类型更适合,尽量避免使用字符串63. 了解字符串连接的性能64. 通过接口引用对象65. 接口优先于反射机制66. 谨慎使用本地方法67. 谨慎优化68. 遵守普遍接受...原创 2019-07-07 13:31:03 · 355 阅读 · 0 评论 -
HeadFirst设计模式学习笔记02
装饰者模式运行时扩展,远比编译时继承威力大。熟悉了装饰的技巧,能够在不改变任何底层代码的情况下,给你的对象赋予新的职责。星巴兹咖啡星巴兹starbuzz以扩张速度快闻名,准备更新订单系统,以适应他们的饮料供应要求。原先类的设计:现在想购买咖啡时,可以要求在其中加入各种调料,如蒸奶(Steamed Milk)、豆浆(soy)、摩卡(mocha,也就是巧克力风味)或覆盖奶泡,根据加入的调...原创 2019-08-18 22:55:13 · 333 阅读 · 0 评论 -
HeadFirst设计模式学习笔记03
命令模式把方法调用(method invocation)封装起来。通过封装方法调用,把运算块包装成型,调用该运算的对象不需要关心事情如何进行,只需要知道如何使用该方法来完成它即可。需求设计一个家电自动化遥控器的API,原型遥控器具有七个可编程的插槽(每个都可以指定到一个不同的家电装置),每个插槽都有对应的开关按钮。该遥控器还具备一个整体的撤销按钮。已有资源:一组java类,由多家厂商开发的...原创 2019-08-18 22:56:29 · 192 阅读 · 0 评论 -
JUC
JUC1. JMM什么是JMMJMM(java内存模型Java Memory Model)本身是一种抽象的概念,描述的是一组规则或规范。通过这组规范定义了程序中各个变量的访问方式。由于JVM运行程序的实体是线程,而每个线程创建JVM都会为其创建一个工作内存,工作内存是每个线程的私有数据区域,而Java内存模型规定中的变量都存储在主内存。主内存是共享数据,所有线程都能访问,但线程对变量的操作...原创 2019-10-07 22:49:55 · 838 阅读 · 0 评论 -
java提高之JVM入门
常见面试题java中针对垃圾回收的算法对GC每个算法的优缺点和原理如何判断一个对象是否是垃圾什么样的对象可以作为GC ROOTS说说你对minorGC和fullGC的理解java中的四种引用类型及各自的含义说出工作中常见的异常类加载机制JVM入门1. 如何判断对象是否存活问题:Java中判断是否是垃圾的算法没有被引用的对象是一个垃圾。提示:计数器JDK 1....原创 2019-06-10 09:51:36 · 1070 阅读 · 0 评论 -
java提高之设计模式
本笔记主要摘自菜鸟教程,代码重新实现了一遍,方便自己复习。之后会陆续再增加其他设计模式,进行完善,如果想认真学习,可以去菜鸟官网学习。单例1. 懒汉式,线程不安全是否lazy初始化:是是否多线程安全:否实现难度:易描述:这种方式是最基本的实现方式,最大的问题是不支持多线程,因为没有加锁,严格意义不算单例模式,这种方式lazyloading很明显,不要求线程安全。public cl...转载 2019-06-10 09:43:17 · 829 阅读 · 0 评论 -
java_web_2
主要内容:Tomcat、servlet;JSP、MVC、cookie&session ; EL&JSTL ; filter&listener学习目标1. Tomcat & Servlet 能够理解WEB动态资源概念 能够安装、启动和关闭Tomcat服务器 掌握运用Tomcat服务器部署WEB项目的三种方式 能够说出Servlet的编写流程 能够说...原创 2019-03-27 09:54:18 · 1510 阅读 · 0 评论 -
HashMap的原理解析
文章目录一、底层数据结构二、HashMap的实现原理1. 基本组成单元:Node将hash值的计算和index的计算摘出来,非常精彩!为什么必须是右移16位为什么要容量减12. 初始化2. HashMap的put方法4. 数组的索引位置5. 容量和装载因子5. 扩容机制6. 线程安全性三、LinkedHashMap四、相关经典面试1. 介绍HashMap2. 你知道HashMap的工作原理吗?你...原创 2019-04-27 16:23:36 · 3282 阅读 · 1 评论 -
java提高_netty
netty大名鼎鼎,现在应用广泛,本文主要介绍netty的概述,API以及几个小demo,希望能记录自己的学习笔记,分享大家,共同进步。文章目录1.概述2. Netty的整体设计1. 线程模型单线程模型线程池模型Netty模型2. 异步模型Future Callback和Handler3. 核心APIChannelHandler及其实现类pipeline和ChannelPipelineChan...原创 2019-05-02 13:06:54 · 2051 阅读 · 1 评论 -
java的23种设计模式之第一部分
目前阶段需要开始掌握java的23种设计模式了,有些文章代码写的太过简略,敲不出来,在网上搜集了大神当年的学习笔记,希望能分享给更多的小伙伴。需要转载的务必也标明出处!文章转自http://blog.youkuaiyun.com/zhangerqing一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器...转载 2019-04-18 22:28:20 · 153 阅读 · 0 评论 -
java的23种设计模式之第二部分
目前阶段需要开始掌握java的23种设计模式了,有些文章代码写的太过简略,敲不出来,在网上搜集了大神当年的学习笔记,希望能分享给更多的小伙伴。需要转载的务必也标明出处!文章转自http://blog.youkuaiyun.com/zhangerqing我们接着讨论设计模式,上篇文章我讲完了5种创建型模式,这章开始,我将讲下7种结构型模式:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享...转载 2019-04-18 22:31:00 · 138 阅读 · 0 评论 -
java的23种设计模式之第三部分
目前阶段需要开始掌握java的23种设计模式了,有些文章代码写的太过简略,敲不出来,在网上搜集了大神当年的学习笔记,希望能分享给更多的小伙伴。需要转载的务必也标明出处!文章转自http://blog.youkuaiyun.com/zhangerqing &nbs...转载 2019-04-18 22:34:23 · 152 阅读 · 0 评论 -
java的23种设计模式之第四部分
目前阶段需要开始掌握java的23种设计模式了,有些文章代码写的太过简略,敲不出来,在网上搜集了大神当年的学习笔记,希望能分享给更多的小伙伴。需要转载的务必也标明出处!文章转自http://blog.youkuaiyun.com/zhangerqing其实每个设计模式都是很重要的一种思想,看上去很熟,其实是因为我们在学到的东西中都有涉及,尽管有时我们并不知道,其实在Java本身的设计之中处处都有体现,...转载 2019-04-18 22:36:58 · 149 阅读 · 0 评论 -
Java并发编程:volatile关键字解析【转载】
Java并发编程:volatile关键字解析转载自https://www.cnblogs.com/dolphin0520/p/3920373.html在阅读spring security源码时不清楚volatile什么用,发现这篇好文,大神的文章写得太赞了,非常精彩,为了以后能多次回顾,现转载到自己的博客中。 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java ...转载 2019-04-28 15:01:46 · 156 阅读 · 0 评论 -
java_maven
maven 初级1. 依赖管理maven对jar包的管理,maven项目通过jar包的坐标寻找jar包仓库(本地、远程)。2. 一键构建构建的过程:清理-编译-测试-运行3. Maven本地仓库的配置1.分类仓库分三类:**本地仓库:**用来存储从远程仓库或中央仓库下载的插件和 jar 包,项目使用一些插件或 jar 包,优先从本地仓库查找。默认本地仓库位置在 ${user.dir...原创 2019-04-24 11:13:56 · 968 阅读 · 0 评论 -
java_web3
文章目录学习目标day91 jqueryday02 ajax & jsonday03 redisday01 JQuery1. JQuery 基础1. 概念2. 快速入门3. jquery对象和js对象的区别和转换2. 选择器1. 基本操作学习2.1 基本选择器1. 标签选择器(元素选择器)2. id选择器3. 类选择器4. 并集选择器2.2 层级选择器1. 后代选择器2. 子选择器2.3...原创 2019-04-24 18:52:40 · 1320 阅读 · 0 评论 -
java提高_NIO
NIO编程1. 概述java.nio 全称 java non-blocking IO, 是指 JDK 提供的新 API。 从 JDK1.4 开始, Java 提供了一系列改进的输入/输出的新特性, 被统称为 NIO(即 New IO)。 新增了许多用于处理输入输出的类, 这些类都被放在 java.nio 包及子包下 。NIO和BIO的区别BIO以流的方式处理数据,NIO以通道cha...原创 2019-05-01 08:15:39 · 709 阅读 · 0 评论 -
java提高之静态代码块、非静态代码块、静态方法、构造方法、构造代码块
有过java基础的同学肯定绕不开这个小山坡,静态代码块、非静态代码块、静态方法、构造方法、构造代码块,这些,哪些先执行,哪些后执行,为什么呢?首先,先说下论点,再用code佐证,最后探讨机制。java类加载顺序1、虚拟机在首次加载Java类时,会对静态初始化块、静态成员变量、静态方法进行一次初始化 2、只有在调用new方法时才会创建类的实例 3、类实例创建过程:按照父子继承关系进行初始化...原创 2019-06-26 22:48:42 · 442 阅读 · 0 评论 -
java提高之设计模式详解
对设计模式认识比较肤浅,需要总结的比较通俗,可能部分失真,等以后随着实践和认知能力的提升,对文章再行完善。目标 设计模式的六大原则 设计模式的划分 构建者模式 装饰器模式 工厂模式1. 六大原则1. 单一职责原则Single Responsibility Principle, SRP,一个类只负责一个功能领域的相应职责。也就是我们常说的“高内聚,低耦合”2. 开闭原则...原创 2019-06-14 11:29:36 · 738 阅读 · 0 评论 -
java提高之网络
1. 三次握手和四次挥手1. 三次握手建立连接1. 前置知识ACK Acknowledge Character 确认字符SYN synchronize 同步信号,发出的连接信号FIN finish 结束信号(不确定,大致意思吧,以后再修正)2. 概念第一次握手:客户端发送syn包(seq=x)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必...原创 2019-06-14 12:02:24 · 941 阅读 · 0 评论 -
java提高之线程池
阻塞队列结构:Collection 接口 |Queue 接口 |BlockingQueue接口 |实现类ArrayBlockingQueue 底层数组LinkedBlockingQueue 底层链表:默认长度21亿SynchronousQueue 里面只能存放一个阻塞队列常用API抛出异常特殊值阻塞超时插入add(e)offer(e)...原创 2019-06-10 09:28:23 · 1098 阅读 · 0 评论 -
java_web_1
主要内容:基础加强部分:单元测试、注解、反射、内省;mysql;前端三件套和bootstrap;xml学习目标1. 数据库 能够理解数据库的概念 能够安装MySQL数据库。掌握启动,关闭及登录MySQL的方式 能够使用SQL语句创建数据库 能够使用SQL语句操作表结构(创建表、修改表、删除表) 能够使用SQL语句进行数据的添加、修改和删除的操作 能够使用SQL语句简单查询并使...原创 2019-03-27 09:45:14 · 2855 阅读 · 0 评论