自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Syntactic Sugar

理论与实践结合!

  • 博客(98)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java -- CountDownLatch、CyclicBarrier、Semaphore

CoutDownLatch和CyclicBarrier都用于实现多线程之间的相互等待,但二者的关注点不同。CountDownLatch主要用于线程等待其他子线程任务均执行完毕后再执行接下来的业务逻辑单元,而CyclicBarrier主要用于一组线程互相等待大家都达到某个状态后,再同时执行接下来的业务逻辑单元。此外,CountDownLatch是不可以重用的,而CyclicBarrier是可以重用的Semaphore和Java中的锁功能类似,主要用于控制资源的并发访问...

2020-11-30 17:48:16 119

原创 Java -- 锁

文章目录1. 乐观锁2. 悲观锁3. 自旋锁3.1 自旋锁的优缺点3.2 自旋锁的时间阈值4. synchronized1. 乐观锁        乐观锁采用乐观的思想处理数据,在每次读取数据时都认为别人不会修改该数据,所以不会上锁,但在更新时会判断在此期间别人有没有更新数据,通常采用在写时先读出当前版本号然后加锁的方法        具体过程

2020-11-30 17:33:04 188

转载 为什么使用low + (high - low) / 2而不使用(high + low) / 2呢?

为什么使用low + (high - low) / 2而不使用(high + low) / 2呢?目的是防止溢出!为什么这样就防止溢出了呢?看下面的例子。high = 0100 0000 0000 0000 0000 0000 0000 0000 = 1073741824 low = 0100 0000 0000 0000 0000 0000 0000 0000 = 1073741824然后我们将这两个数值相加,看结果是什么。high + low = 1000 0000 0000 0000 0

2020-11-28 18:14:05 985

原创 Java -- Bitmap位图

文章目录1. 数据结构的定义2. 查询方法的实现3. 修改方法的实现        在Java中使用byte[]字节数组来储存bit,1byte = 8bit。对于bit中的第i位,该bit为1则表示true,即数据存在:为0则表示false,即数据不存在。其具体实现分为数据结构的定义、查询方法和修改方法的实现1. 数据结构的定义       &nbsp

2020-11-28 17:51:14 519

原创 Java并发编程实战 -- 读书笔记

0102

2020-11-25 10:56:26 272

原创 Java并发编程实战 -- 基础知识

文章目录第一章第二章第三章第四章第五章        平台提供的各种并发功能与开发人员在程序中需要的并发语义并不匹配!第一章第二章第三章第四章第五章

2020-11-25 10:52:02 243

转载 Java并发编程实战 -- this引用逸出

        《java并发编程实战》中介绍了“发布与逸出”,首先介绍下发布,然后重点介绍this引用逸出。一、发布“发布”一个对象是指,使对象能够在当前作用域之外的代码中使用。例如:①将一个指向该对象的引用保存到其他代码可以访问的地方②在某一个非私有的方法中返回该引用③将引用传递到其他类的方法中下面我们来看几个具体的例子:①将对象的引用保存到一个公有的静态变量中,可以使任何类和线程都能看到该对象import

2020-11-23 20:12:04 236

转载 Java -- 类内部定义接口

        Java类内部可以定义接口,作用可以看作是对类功能的进一步补充,类里面包含两部分:一部分是自己的固定的,一部分是可以变化的,而这可变的部分就编程了一个接口。另一个作用是避免命名冲突。举????类Fruits内部存在接口Applepublic class Fruits { public interface Apple { public String info(); }}

2020-11-23 20:02:12 1645

原创 并发 -- 竞态条件 & 数据竞争

文章目录1. 竞态条件2. 数据竞争3. [并发的数据竞争(可见性)与竞态条件(原子性)](https://blog.csdn.net/qq_32252957/article/details/83004866)        并非所有的竞态条件都是数据竞争,同样并非所有的数据竞争都是竞态条件,但二者都可能使并发程序的失败1. 竞态条件       &nb

2020-11-23 12:53:52 1070 1

原创 尚筹网 -- 合集

01 尚筹网 – 1️⃣后台 – 环境搭建02

2020-11-22 20:00:03 277

原创 尚筹网 -- 1️⃣后台 -- 环境搭建

        本系列文章记录尚硅谷官网的尚筹网开发过程以及遇到的问题!

2020-11-22 19:58:48 920

原创 Eclipse -- 宝典

01 Eclipse – 设置新建jsp文件默认字符编码为utf-802

2020-11-22 14:31:30 131

转载 Eclipse -- 设置新建jsp文件默认字符编码为utf-8

在使用Eclipse开发中,编码默认是ISO-8859-1,不支持中文。这样我们每次新建文件都要手动修改编码,非常麻烦。其实我们可以设置文件默认编码,今后再新建文件时就不用修改编码了。1.打开Eclipse,点击Window弹出下拉列表,选择Preference:2.然后在弹出的Preference设置里,找到Web,并点击JSP Files,我们可以看到默认的jsp文件的字符编码是ISO-8859-1(ISO Latin-1)在右边把Encoding设置为ISO 10646/Unicode(UTF

2020-11-22 14:30:47 373

转载 Maven -- 聚合模块/父子工程详解

文章目录1、maven聚合模块2、pom继承1、maven聚合模块聚合模块为项目目录的最顶层,其他模块作为聚合模块子目录而存在。目的是为一次构建多个项目模块。项目结构如下:通常聚合的模块可以理解为为父工程,下面的模块为子模块。聚合模块(父工程)作用1:父工程是一个pom工程,通常只是用来帮助其子模块构建的工具,本身并没有实质的内容。具体每个工程代码的编写还是在生成的工程中去写。所有的子模块都继承于父模块,父模块用来做整个项目的版本控制,也就是项目中所有要使用到的jar包的版本都集中由父工程管理。

2020-11-21 10:33:01 1782

原创 Maven -- 杂记

01 Maven – 三种项目打包方式----jar,war,pom

2020-11-21 10:18:16 118

转载 Maven -- 三种项目打包方式----jar,war,pom

1.pom工程:用在父级工程或聚合工程中。用来做jar包的版本控制。必须指明这个聚合工程的打包方式为pom2.war工程:将会打包成war,发布在服务器上的工程。如网站或服务。在SpringBoot 项目中,只要我们在依赖中添加了web的启动器,我们就不需要添加打包方式了,maven会自动帮助我们 识别这个项目为war工程。不是springBoot项目的话,则需要指明这个项目为一个web工程。3.jar工程:将会打包成jar用作jar包使用。在项目中,不指明的话,默认的就是打包成jar工程,我们也

2020-11-21 10:16:10 541

转载 美团面试官问我: ZGC 的 Z 是什么意思

本文的阅读有一定的门槛,请先了解 GC 的基本只知识。 现代垃圾收集器的演进大部分都是往减少停顿方向发展。 像 CMS 就是分离出一些阶段使得应用线程可以和垃圾回收线程并发,当然还有利用回收线程的并行来减少停顿的时间。 基本上 STW 阶段都是利用多线程并行来减少停顿时间,而并发阶段不会有太多的回收线程工作,这是为了不和应用线程争抢 CPU,反正都并发了慢就慢点(不过还是得考虑内存分配速率)。 而 G1 可以认为是打开了另一个方向的大门:只回收部分垃圾来减少停顿时间。 不过为了达到只回收部..

2020-11-19 16:30:08 1044

转载 炸了!一口气问了我18个JVM问题!

前言GC 对于Java 来说重要性不言而喻,不论是平日里对 JVM 的调优还是面试中的无情轰炸。 这篇文章我会以一问一答的方式来展开有关 GC 的内容。 不过在此之前强烈建议先看这篇文章深度揭秘垃圾回收底层。 因为这篇文章解释了很多有关垃圾回收的基本知识,能从源头上理解垃圾回收和日益发展的垃圾收集器演进的方向,这很重要。 本文章所说的 GC 实现没有特殊说明的话,默认指的是 HotSpot 的。 我先将十八个问题都列出来,如果都清楚的话那就可以关闭这篇文章了。 好了,开始表演。 youn

2020-11-19 16:24:05 199 1

原创 JVM -- 宝典合集

各种好资源集合,转载系列!转载于是Yes呀 – JVM的那些事儿1、深度揭秘垃圾回收底层,这次让你彻底弄懂她

2020-11-19 15:34:44 126

转载 深度揭秘垃圾回收底层,这次让你彻底弄懂她

Java 与 C++ 之间有一堵由内存动态分配和垃圾收集技术所围成的高墙 ---《深入理解Java虚拟机》 我们知道手动管理内存意味着自由、精细化地掌控,但是却极度依赖于开发人员的水平和细心程度。 如果使用完了忘记释放内存空间就会发生内存泄露,再如释放错了内存空间或者使用了悬垂指针则会发生无法预知的问题。 这时候 Java 带着 GC 来了(GC,Garbage Collec...

2020-11-19 15:30:25 323 1

原创 Maven -- 依赖信息来源

到专门网站搜索https://mvnrepository.com调试根据实际运行情况,确认 jar 包之间是否兼容例如:SpringMVC 需要 jackson 的支持,来处理 JSON 数据。但是 SpringMVC 并没有依 赖 jackson。所以需要我们自己保证 jar 包之间的兼容性...

2020-11-18 21:21:05 232

转载 mybatis 项目配置 xml文件时 报错提示(The reference to entity “useSSL“ must end with the ‘;‘ delimiter.)

最近在用mybatis时出了不少的问题,现在看来的确是掌握的不扎实。这次在配置xml文件时,出现错误提示(The reference to entity “useSSL” must end with the ‘;’ delimiter.)报错行为<property name="url" value="jdbc:mysql://www.xxxx.com:3306/db?characterEncoding=utf8&useSSL=false"/>链接jdbc时,路径链接参数之前一直

2020-11-18 20:27:20 305

转载 Maven -- Eclipse中使用maven创建项目JDK版本默认是1.5解决方法

请看解决方案:修改maven的settings.xml文件。添加以下行,jdk版本改为自己需要的版本:<profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties>

2020-11-18 19:16:22 242

转载 Eclipse -- The compiler compliance specified is 1.5 but a JRE 1.8 is used

右键点击项目>Properties>Java Compiler>将Compiler compliance level改为1.8

2020-11-18 18:44:32 894

转载 Eclipse -- Java compiler level does not match the version of the installed Java project facet问题解决

Eclipse出现Java compiler level does not match the version of the installed Java project facet错误提示原因:Java Compiler选择的版本和’Project Facets’中指定的java版本不一致引起的。修改为一致即可,'Project Facets’版本的修改方式的有多种,1、可以直接修改相应配置文件在工程目录下.settings/org.eclipse.wst.common.project.

2020-11-18 18:42:34 195

转载 Eclipse -- 新建web项目提示Java. Warning – Build path specifies execution environment J2SE-1.6

接着单击“Add Library”,在新窗口中选择 JRE System Library:最后选择 “Executin Environment” 或默认 Workspace default JRE:

2020-11-18 18:29:46 411

原创 Netty -- 基操勿6️⃣

文章目录1、Netty介绍1.1 原生NIO存在的问题1.2 Netty官网说明1.3 Netty的优点1.4 Netty版本说明2、Netty应用场景3、I/O模型3.1 I/O 模型基本说明3.2 BIO、NIO、AIO适用场景分析3.3 Java BIO 基本介绍Java BIO 工作机制3.4 Java NIO 基本介绍NIO 和 BIO 的比较NIO 三大核心原理示意图缓冲区(Buffer)通道(Channel)Selector(选择器)NIO 非阻塞 网络编程原理分析图SelectionKeyS

2020-11-17 21:04:21 854 5

转载 IDEA -- 启动WEB服务器测试时出现LOCALHOST:6666的端口无法访问

自己在IDEA中刚开始搭建好Springboot,启动服务器,在谷歌浏览器上访问时出现下面情况:server: port: 6666当时自己反复检查代码,.yaml配置文件都没有发现问题。后来在网上查询时,发现谷歌浏览器对某些端口做了限制,比如6666这个端口,然后改好端口号,就没有没有问题了。server: port: 6660正确的结果:还有以下端口被做了限制1: // tcpmux7: // echo9: // discard11: // systat13: //

2020-11-17 20:49:21 820 1

转载 成功解决idea中:Error:java: Compilation failed: internal java compiler error

Information:java: javacTask: 源发行版 8 需要目标发行版 1.8Information:java: Errors occurred while compiling module 'neu-crawler'Information:javac 1.8.0_181 was used to compile java sourcesInformation:Module "neu-crawler" was fully rebuilt due to project configurat

2020-11-17 19:10:09 220

原创 码云SSH免密 -- IDEA & Eclipse

文章目录1、简介2、配置 SSH 免密登录3、在 Eclipse 中通过 SSH 模式上传项目4、在 Idea 中通过 SSH 模式上传项目1、简介使用 GitHub 作为项目托管网站如果网速不好很影响效率,大家也可以使用国内的项目托管网站-码云。网址是 https://gitee.com/ ,使用方式跟 GitHub 一样,而且它还是一个中文网站,如果你英文不是很好它是最好的选择。2、配置 SSH 免密登录在码云上通过 HTTPS 的模式上传项目跟在 GitHub 上一样,但是在码云上上传项目总是

2020-11-17 12:32:22 326

原创 IDEA & Git -- 整合

文章目录1、安装 Git 核心程序2、全局配置2.1 配置 Git 核心程序2.2 配置 GitHub 账户3、创建本地库3.1 新建本地库3.3 创建分支3.4 合并分支3.5 解决冲突4、将本地库上传到 GitHub4.1 上传本地库4.2 更新本地库5、从 GitHub 上克隆项目到本地1、安装 Git 核心程序根据自己的电脑操作系统从 Git 官网 https://git-scm.com/下载对应的 Git 核心程序。以 git-2.21.0 为例说明安装步骤:双击 Git-2.21.0

2020-11-17 12:22:13 148

原创 Git -- Eclipse整合

文章目录1、全局配置1.1 配置用户名和邮箱1.2 配置忽略的文件2、创建本地库2.1 新建本地库2.2 版本间切换2.3 创建分支2.4 合并分支2.5 解决冲突3、将本地库上传到 GitHub3.1 注册 GitHub 账号3.2 上传本地库3.3 更新本地库4、从 GitHub 上克隆项目到本地4.1 克隆项目4.2 添加合作伙伴4.3 非合作伙伴如何共同开发项目Eclipse 中默认自带了 Git 插件,通过点击 Help→About Eclipse IDE 可以查看1、全局配置1.1 配置

2020-11-17 10:20:04 1095

原创 IDEA -- 配置Maven & 创建

文章目录1、IDEA配置自带的Maven插件1.1 配置自带的 Maven 插件1.2 配置我们自己安装的 Maven2、在 Idea 中创建 Maven 项目2.1 创建 Java 工程2.2 创建 Web 工程(了解)3、在 Idea 中导入 Maven 项目1、IDEA配置自带的Maven插件Idea 中也自带 Maven 插件,而且我们也可以给自带的 Maven 插件进行配置,所以我们可以使用自带的 Maven,也可以使用我们安装的 Maven 核心程序1.1 配置自带的 Maven 插件

2020-11-17 09:52:16 131

原创 Maven -- Eclipse配置 & 创建 & 导入

文章目录1、在Eclipse中配置Maven2、在Eclipse中创建Maven项目2.1 创建 Java 工程2.2 创建Web工程2.3 创建父工程3、在 Eclipse 中导入 Maven 项目1、在Eclipse中配置Maven        Eclipse 中默认自带 Maven 插件,但是自带的 Maven 插件不能修改本地仓库,所以通常我们不使用自带的 Maven,而是使用自己安装的,在 Eclipse 中配置

2020-11-17 09:27:02 175

原创 Maven -- 安装 & 配置 & 镜像

文章目录1、安装 Maven 核心程序2、配置本地仓库和阿里云镜像2.1 配置本地仓库2.2 配置阿里云镜像1、安装 Maven 核心程序下载地址:http://maven.apache.org/检查 JAVA_HOME 环境变量。Maven 是使用 Java 开发的,所以必须知道当前系统环境中 JDK 的安装目录。C:\Users\wefwf845>echo %JAVA_HOME%D:\Java\jdk1.8.0_111解压 Maven 的核心程序。将 apache-mav

2020-11-17 09:05:01 179

转载 JavaNIO和零拷贝(Zero Copy)

文章目录一.Linux操作系统中的零拷贝1.1 先从Linux的普通I/O过程说起1.2 内存映射方式I/O1.3 内核空间内部传输I/O1.4 升级版-内核空间内部传输I/O1.5 后续优化-splice()系统调用二.JavaNIO中的零拷贝2.1 NIO中内存映射方式I/O2.2 NIO中的零拷贝三. 补充内容今天在学习netty的时候,突然了解到一个新的概念,零拷贝(Zero Copy),涉及到操作系统中的一些知识,深感自己的知识浅薄,因此特地去学习了一番,如果有谬误,请大家批评指出。一.Lin

2020-11-16 21:12:11 185

转载 Windows的telnet是单字符发送,整行发送的方式

在Unix中做了一个socket,用windows下的telnet登录到该端口的时候,每按一个键就会发送到socket中去,而在Unix下的telnet,则一直到按下回车后再发送到socket。这样导致socket中的命令分解。在win下用telnet发送,就遇到上述问题,按一字符即发送至服务端,而服务端收到数据,即时反应,没有针对回车换行符之类特殊处理。导致无法发送完整数据。若在unix平台下,telnet下输入后,只有回车后,才会发送至服务端,不存在这个问题。研究了win下的telnet许久,无设

2020-11-16 13:18:30 1115 4

原创 Java -- 成员内部类不能含有static成员(汇总)

文章目录1、为什么内部类中有static成员时内部类也必须声明为static2、JVM的类加载规则 :3、成员内部类中为什么不能有静态方法和属性4、静态内部类(public static class)和普通内部类(public class)的区别5、Java中普通内部类为何不能有static属性 却可以有常量6、java内部类有什么好处?为什么需要内部类?静态内部类局部内部类匿名内部类7、Java静态内部类(static class)1、为什么内部类中有static成员时内部类也必须声明为static&

2020-11-15 14:14:51 5031 11

转载 Java并发关键字 -- final

文章目录final的简介final的具体使用场景变量final成员变量final局部变量方法类final关键字举例多线程中你真的了解final吗final域重排序规则final域为基本类型final域为引用类型final的实现原理为什么final引用不能从构造函数中“溢出”final的简介final可以修饰变量,方法和类,用于表示所修饰的内容一旦赋值之后就不会再被改变,比如String类就是一个final类型的类。即使能够知道final具体的使用方法,final在多线程中存在的重排序问题很容易忽略,希望

2020-11-15 10:26:10 189

转载 Java中的不变性(Immutable)和final有关吗

一 概述 Java中满足同步需求的另一种方法是使用不可变的对象(Immutable Object)。因为如果对象的状态不会改变,那么并发同步过程中就不会存在并发问题。 final关键字可以用来修饰变量,方法,类。final定义的引用是不可变的,但是引用的对象是可变的 。final定义的值类型是无法修改的。 二 Java中的不变性Immutable 如果某个对象在被创建之后其状态就不能被修改...

2020-11-15 09:28:23 236

asmpatch.zip

本资源配合masm32汇编编程环境,内含辅助软件包,由于masm32内置编辑器不完善,我们这里提供notepad2编辑器,最重要的是ollydbg调试器,方便查看程序状态。

2020-05-18

空空如也

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

TA关注的人

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