
Java + 后端 技术
wa_c777
知行合一
展开
-
xxl-sso 启动
好久没写博客了,最近几个月学的、做的东西都是以word笔记记录,感觉更方便、效率更高一点,最后形成的每篇个人笔记大小都是几百M。之后看情况吧,or将这几个月做的笔记都copy到博客上来。这篇博客主要记录:xxl-sso 启动失败:日志配置问题。尝试使用 作者:许雪里https://gitee.com/xuxueli0323/xxl-sso?_from=gitee_search写的分布式单点登录框架,写的不错,里面有官方文档,上手也很容易。启动项目时遇到了一个小问题,/resource/lo.原创 2020-09-04 10:19:55 · 234 阅读 · 0 评论 -
静态分配与静态分配目标的过程
1. 静态分派public class StaticDispatch { static abstract class Human { } static class Man extends Human { } static class Woman extends Human { } public void sayHello(Hum...原创 2020-04-22 10:33:02 · 365 阅读 · 0 评论 -
Java模块化系统 个人总结
一. Java模块化系统JDK9开始引入,目的:为了能够实现模块化的关键目标:可配置的封装隔离机制。可配置的封装隔离机制主要解决:【1】首先要解决JDK9之前基于类路径(ClassPath)来查找依赖的可靠性问题;【2】还解决了原来类路径上跨JAR文件的public类型的可访问性问题。二. 模块的兼容性2.1 模块的向后兼容性为了使可配置的封装隔离机制能够兼容传统...原创 2020-04-21 10:50:06 · 366 阅读 · 0 评论 -
读《深入理解Java虚拟机》第三版有感
不知不觉该书已经第三版了啊,疫情期间,无意中得知在去年年底第三版出版了,遂立即找能够发货的书店订了一本。书到后,花了三个星期看了一遍。想最初看这本书还是本科时,那时是第一版,很欣慰看到作者周志明先生不遗余力出到第三版。看第一版时蛮难受的,不懂的知识挺多,不过收获也挺大的。借着这次看第三版,把以前不懂的、现在新增的都掌握一下,并把自己对于JVM理解的思维导图重构、丰富一下。读完后,觉得第...原创 2020-04-20 16:39:21 · 319 阅读 · 0 评论 -
Properties 类
Java.util.Properties,该类主要用于读取Java的配置文件,不同的编程语言有自己所支持的配置文件,配置文件中很多变量是经常改变的,为了方便用户的配置,能让用户够脱离程序本身去修改相关的变量设置。就像在Java中,其配置文件常为.properties文件,是以键值对的形式进行参数配置的。public class Properties extends Hashtable&...原创 2019-08-06 10:45:02 · 210 阅读 · 0 评论 -
XML Schema
Schema,即XML Schema,XSD (XML Schema Definition)是W3C于2001年5月发布的推荐标准,指出如何形式描述XML文档的元素。XSD是许多XML Schema 语言中的一支。XSD是首先分离于XML本身的schema语言,故获取W3C的推荐地位。XML Schema 是基于 XML 的 DTD 替代者。XML Schema 描述 XML 文档的结构。...转载 2019-08-05 19:30:55 · 210 阅读 · 0 评论 -
Netty学习
又见一系列的高质量博客,打算跟进持续学习!作者:简书:简书闪电侠原文链接:https://www.jianshu.com/p/a4e03835921a在开始了解Netty是什么之前,我们先来回顾一下,如果我们需要实现一个客户端与服务端通信的程序,使用传统的IO编程,应该如何来实现?IO编程我们简化下场景:客户端每隔两秒发送一个带有时间戳的"hello worl...原创 2019-07-26 19:52:48 · 242 阅读 · 0 评论 -
解决Mac本地搭建 svn后、报错没有权限的问题
问题:按照网上的教程搭建本地svn,一步步过来都成功了,但是上传项目时报错:Description : Can't open file '/Users/用户名xx/svn/mycode/db/txn-current-lock': Permission deniedStatus : 13原因:出现这种问题的原因在于搭建SVN服务器,包括创建Repository Users/...原创 2019-07-31 12:41:44 · 1009 阅读 · 0 评论 -
Lombok 使用
1 Lombok背景介绍官方介绍如下:Project Lombok makes java a spicier language by adding 'handlers' that know how to build and compile simple, boilerplate-free, not-quite-java code.大致意思是Lombok通过增加一些“处理程序”,可以让...原创 2019-07-29 21:00:46 · 219 阅读 · 0 评论 -
IDEA中mysql:Unknown initial character set index '255' received from server
在使用idea的时候,遇到Unknown initial character set index '255' received from server 错误,随机网上浏览博客寻找解决问题的思路,大部分的解决方案是:在JDBC连接库的URL加上?useUnicode=true&characterEncoding=utf8就可以了,但是试了试还是我发解决问题,在折腾若干次之后,...原创 2019-07-24 10:20:49 · 233 阅读 · 0 评论 -
JS:JS引擎的执行机制
深入理解JS引擎的执行机制:1. JS为什么会是单线程的?为什么需要异步?单线程又是如何实现异步的?2. JS中的event loop (1)3. JS中的event loop (2)4. 谈谈setTimeout首先,(1) JS是单线程语言;(2) JS的Event Loop是JS的执行机制。深入了解JS的执行,就等于深入了解JS里的event l...原创 2019-07-11 19:59:52 · 132 阅读 · 0 评论 -
logback的配置、使用
一. logbackLogback旨在作为流行的log4j项目的后续版本,在log4j离开的地方启动。Logback的架构足够通用,以便在不同情况下应用。目前,logback分为三个模块:logback-core,logback-classic和logback-access。logback-core模块为其他两个模块奠定了基础。 logback-classic模块可以被同化为log...原创 2019-08-14 10:39:39 · 327 阅读 · 0 评论 -
mac 配置环境变量 .bash_profile
主要我老记错.bash_profile名字。。。1:编辑 .bash_profile文件vim .bash_profile2.然后各种配置。。。3.配置完成后:wq!保存退出4.使配置生效:使用”source .bash_profile”使配置生效...原创 2019-08-24 10:03:06 · 255 阅读 · 0 评论 -
idea 修改内存大小
以下是 macOS 下的 idea 设置内存大小的方式 !idea有一个配置文件可以修改配置文件的大小:idea.vmoptions该文件的位置:应用程序 -> idea -> 显示包内容 -> Content/bin/idea.vmoptions以下是初始的配置信息:-Xms128m-Xmx750m-XX:ReservedCodeCacheSize=240...原创 2019-08-20 17:52:24 · 544 阅读 · 0 评论 -
macOS eclipse安装lombok
lombok的详细介绍见:https://blog.youkuaiyun.com/ScorpC/article/details/97678993这里就不详细赘述了,只介绍在mac eclipse下的安装流程:# 首先:应用程序 -> eclipse -> 显示包内容:# 把 lombok.jar 拷贝到Eclipse目录下;# 然后修改eclipse.ini文件:...原创 2019-08-13 11:16:06 · 298 阅读 · 0 评论 -
面试题总结:filter过滤器、interceptor拦截器 区别
过滤器和拦截器的区别 ①拦截器是基于java的反射机制的,过滤器是基于函数回调。 ②拦截器不依赖与servlet容器,过滤器依赖于servlet容器。 ③拦截器只能对action请求起作用,过滤器则可以对几乎所有的请求起作用。 ④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。 ⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时...原创 2019-08-29 10:09:43 · 2220 阅读 · 0 评论 -
关于 HSF框架 (一)简单介绍
HSF介绍HSF全称 high speed frameworkd, 是Alibaba内部使用的RPC框架,最初与Dubbo进行内部竞争,由于多方面的原因最终选择了HSF。主要原因如下:HSF代码量少一些,轻量一些,代码量大概2/3, Dubbo设计更加全面功能更多,更容器扩展和替换开源组件。HSF的netty + hession传输性能更高, Dubbo内部filter过多也进一步...原创 2019-09-05 21:01:21 · 1501 阅读 · 0 评论 -
关于调用 支付宝接口 总结
https://docs.open.alipay.com/200/105310/【首先,需要创建应用】使用支付宝账号登录开放平台,进入开发者中心。支付宝官方提供的应用分为两种:第三方应用:适用于服务商(ISV),为商户开发应用,拓展商户使用,详见第三方应用。 自用型应用:使用开放的功能,为自己或自己公司开发应用,详见自用型应用。自研型应用分为网页/移动应用,小程序和生活号应用...原创 2019-09-14 08:28:45 · 810 阅读 · 0 评论 -
POI 某个地理位置周边的信息
调地图接口中的一个很重要的概念。对于地图产品而言,某个地理位置周边的信息,称为POI。point of informationORpoint of interest,地图上任何非地理意义的有意义的点(好绕口eg.商店、银行、加油站POI存在的意义:在用户对地理位置及周边的信息认知不准确的情况下,将用户与地理上具有意义的点进行连接,并进行下一步行为的转化。POI标签的粒度...原创 2019-09-14 09:25:57 · 2094 阅读 · 0 评论 -
Docker:开源的应用容器引擎
Docker是一个开放源代码软件项目,让应用程序部署在软件货柜下的工作可以自动化进行,借此在Linux操作系统上,提供一个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。Docker利用Linux核心中的资源分离机制,例如cgroups,以及Linux核心名字空间(namespaces),来创建独立的容器(containers)。这可以在单一Linux实体下运作,避免引导一个虚拟机造成的...原创 2019-05-10 09:34:10 · 346 阅读 · 0 评论 -
JS:关于JS中的回调函数callback
一. 异步 同步的 区别异步async/同步sync举个小栗子:1.早上起来不论你是先刷牙还是先洗脸,都要等一个事情完毕后才能进行下一项,这就是一个同步的例子2.然后刷牙的时候你也可以烧水喝 (不用等你刷完牙)这就是一个异步的例子来段异步代码示例::js里面最基础的异步实现:运行结果以上代码会先执行函数a, 而且不会等到a中的延迟函数执行完才执行函数b...原创 2019-07-11 19:28:55 · 265 阅读 · 0 评论 -
JS:垃圾回收
垃圾回收对于开发者来说,JavaScript 的内存管理是自动的、无形的。我们创建的原始值、对象、函数……这一切都会占用内存。当某个东西我们不再需要时会发生什么?JavaScript 引擎如何发现它、清理它?可达性JavaScript 中主要的内存管理概念是可达性。简而言之,『可达』值是那些以某种方式可访问或可用的值。它们保证存储在内存中。 这里列出固有的可达值基本集...原创 2019-06-24 16:01:55 · 205 阅读 · 0 评论 -
Java反射
反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码))一、反射的概述Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。要想解剖一个类,必须先要获...原创 2019-06-04 21:47:18 · 252 阅读 · 0 评论 -
Java 并发编程(二):Java内存模型以及 happens-before 规则
https://www.jianshu.com/p/d52fea0d6ba51. JMM的介绍在上一篇文章中总结了线程的状态转换和一些基本操作,对多线程已经有一点基本的认识了,如果多线程编程只有这么简单,那我们就不必费劲周折的去学习它了。在多线程中稍微不注意就会出现线程安全问题,那么什么是线程安全问题?我的认识是,在多线程下代码执行的结果与预期正确的结果不一致,该代码就是...原创 2019-05-25 10:36:54 · 368 阅读 · 0 评论 -
Java 并发编程(一):并发编程的优缺点、线程的状态转换以及基本操作
要持续学习,有效率、有计划的学习(用长久以来自己形成的好的学习习惯),要不断对已学过的、正在学的、将要的学的,进行深层次的理解,不要停留在只会用的层面上!最近在回顾并发方面知识,阅读《Java并发编程的艺术》等书籍、浏览优秀的博客、看源码等,收获颇多;另外,在这个过程中,发现了一位博主写的一系列的关于java并发编程的博客不错,而且作者大部分也是基于《Java并发编程艺术》写的,同时加上了...原创 2019-05-25 10:07:33 · 190 阅读 · 0 评论 -
关于JDK收费问题
云里雾里,不如自己亲自去官网看看。以 JDK8 2019年4月29日为例:官方原文:Important Oracle JDK License UpdateThe Oracle JDK License has changed for releases starting April 16, 2019.The newOracle Technology Network Licens...原创 2019-05-16 14:30:26 · 4680 阅读 · 0 评论 -
Java 垃圾回收
一. Java的垃圾回收机制是Java语言的重要功能之一。当程序创建对象、数组等引用类型实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存区中,当这块内存不再被任何引用变量引用时,这块内存就变成垃圾,等待垃圾回收机制进行回收: 只回收堆内存中的对象;不回收任何物理资源; 垃圾回收只会在合适的时候进行:程序无法精确控制垃圾回收的运行;...原创 2019-05-11 11:55:07 · 150 阅读 · 0 评论 -
《深入理解java虚拟机》:个人阅读笔记
个人阅读笔记,持续记录第一部分 走进Java第一章 走进Java1.作者写这本书的目的就是为了与读者一起分析java技术中最重要的那些特性的实现原理;2.本书使用HotPot虚拟机进行讲解;3.java技术未来的发展趋势:模块化、混合语言、多核并行、进一步丰富语法等;4.本章的核心就是使用HotPot和OpenJDK自己编译JDK;第二部分 自动内存管...原创 2019-05-14 23:32:32 · 186 阅读 · 0 评论 -
ZooKeeper:分布式应用程序协调服务
Apache ZooKeeper 是Apache软件基金会的一个软件项目,他为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。ZooKeeper曾经是Hadoop的一个子项目,但现在是一个独立的顶级项目。ZooKeeper的架构通过冗余服务实现高可用性。因此,如果第一次无应答,客户端就可以询问另一台ZooKeeper主机。ZooKeeper节点将它们的数据存储于一个分层的命名空间,非常...原创 2019-04-30 15:43:19 · 364 阅读 · 0 评论 -
关于分布式、集群:(一)基本概念
一、大白话解说,半分钟就懂,用生活中的例子来说明:小饭店原来只有一个厨师,切菜洗菜备料炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,两个厨师的关系是集群。为了让厨师专心炒菜,把菜做到极致,再请了个配菜师负责切菜,备菜,备料 ... 厨师和配菜师的关系是分布式。一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群。一个配菜师因...原创 2019-04-28 21:14:05 · 309 阅读 · 0 评论 -
mac 配置java开发环境
一. 安装JDK1. 首先检查本机是否已经安装了JDK:打开终端,输入:java -version如果没有安装,会有提示。2.下载JDK:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html选择相应的版本,下载完后,直接点击 .dmg文件,根据提示,自动...原创 2019-04-27 15:11:35 · 349 阅读 · 0 评论 -
mac无法下载java jdk
可能由于网络的原因,mac在oracle下载jdk时只显示5kb,多次尝试都是如此,有人尝试挂威皮恩下载没问题,但我试了后还是只是5kb,因此可以尝试用其他方法下载:可以从以下链接下载jdk、jre:https://jdk.java.net/选择相应的版本即可。https://stackoverflow.com/questions/37645545/cant-download-j...原创 2019-04-23 09:06:50 · 719 阅读 · 0 评论 -
《深入理解java虚拟机》阅读框架
自己的「《深入理解java虚拟机》- 个人阅读笔记」 因为时间原因,需要一点一点补充,时间较长;浏览博客时发现了一篇写的不错的博客,简单明了,可以当做阅读框架;转载自:https://blog.youkuaiyun.com/qq_41701956/article/details/81664921稍作略微调整感谢!目录:1. Java内存区域与内存溢出异常1.1运行时数据区域...原创 2019-05-21 20:36:18 · 209 阅读 · 0 评论 -
Java 并发编程(四):三大性质总结:原子性,有序性,可见性
https://www.jianshu.com/p/cf57726e77f21. 三大性质简介在并发编程中分析线程安全的问题时往往需要切入点,那就是两大核心:JMM抽象内存模型以及happens-before规则(在这篇文章中已经经过了),三条性质:原子性,有序性和可见性。关于synchronized和volatile已经讨论过了,就想着将并发编程中这两大神器在 原子性,...原创 2019-05-25 17:15:42 · 228 阅读 · 0 评论 -
Java 并发编程(五):详解 Lock、AbstractQueuedSynchronizer
https://www.jianshu.com/p/7a65ab32de2a继续,借着这位老哥的博客,继续总结;稍作修改和调整;1. concurrent包的结构层次在针对并发编程中,Doug Lea大师为我们提供了大量实用,高性能的工具类,针对这些代码进行研究会让我们队并发编程的掌握更加透彻也会大大提升我们队并发编程技术的热爱。这些代码在java.util.concurre...原创 2019-06-10 20:34:06 · 244 阅读 · 0 评论 -
详解 Java并发工具类:Semaphore,Exchanger
1. 控制资源并发访问--SemaphoreSemaphore可以理解为信号量,用于控制资源能够被并发访问的线程数量,以保证多个线程能够合理的使用特定资源。Semaphore就相当于一个许可证,线程需要先通过acquire方法获取该许可证,该线程才能继续往下执行,否则只能在该方法出阻塞等待。当执行完业务功能后,需要通过release()方法将许可证归还,以便其他线程能够获得许可证继续执行。...原创 2019-06-15 10:47:40 · 223 阅读 · 0 评论 -
详解 Condition的await和signal 等待/通知机制
Condition.java源码:package java.util.concurrent.locks;import java.util.concurrent.TimeUnit;import java.util.Date;public interface Condition { void await() throws InterruptedException; ...原创 2019-06-14 21:11:36 · 583 阅读 · 0 评论 -
Docker:(一)安装Oracle数据库
1.下载并安装Docker 第一步:下载docker(500M左右) 下载连接:https://download.docker.com/mac/stable/Docker.dmg 第二步:点击Docker.dmg安装即可 第三步:打开终端,输入命令docker version查看docker版本,看是否安装成功: Client: Docker Engine - C...原创 2019-06-03 16:40:04 · 3098 阅读 · 0 评论 -
详解 读写锁ReentrantReadWriteLock
1.读写锁的介绍在并发场景中用于解决线程安全的问题,我们几乎会高频率的使用到独占式锁,通常使用java提供的关键字synchronized(关于synchronized可以看这篇文章)或者concurrents包中实现了Lock接口的ReentrantLock。它们都是独占式获取锁,也就是在同一时刻只有一个线程能够获取锁。而在一些业务场景中,大部分只是读数据,写数据很少,如果仅仅是读数据的...原创 2019-06-13 21:18:13 · 206 阅读 · 0 评论 -
详解 ReentrantLock
1. ReentrantLock的介绍ReentrantLock重入锁,是实现Lock接口的一个类,也是在实际编程中使用频率很高的一个锁,支持重入性,表示能够对共享资源能够重复加锁,即当前线程获取该锁再次获取不会被阻塞。在java关键字 synchronized 隐式支持重入性(关于synchronized可以看这篇文章),synchronized通过获取自增,释放自减的方式实现重入。与此...原创 2019-06-13 20:35:29 · 168 阅读 · 0 评论