自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

OMG的博客空间

Hello Blogs

  • 博客(24)
  • 资源 (3)
  • 收藏
  • 关注

原创 AQS核心流程解析-共享锁-acquireShared和releaseShared

在之前分析的核心方法都是排他锁,今天开始聊聊共享锁的获取与释放。

2022-03-18 10:05:53 837

原创 AQS核心流程解析-cancelAcquire方法

cancelAcquire方法的重要性体现在,在获取锁的方法中,异常处理都需要用到他,那么我们来分析一下这个方法的作用。

2022-03-16 10:12:08 2828 10

原创 AQS核心流程解析-release方法

在分析过acquire方法之后,这次来看看与之对应的release方法。

2022-03-15 14:58:13 892

原创 AQS核心流程解析-acquire方法

acquire方法的主要流程解析

2022-03-11 14:04:59 1244

原创 JMM(Java内存模型)要点梳理

因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。Java内存模型,就是为了屏蔽系统和硬件的差异,让一套代码在不同平台下能到达相同的访问结果。

2022-02-23 17:18:12 561

原创 编译OpenJDK执行get_source.sh时报错Could not determine Mercurial version of /usr/bin/hg

原因:执行hg --version的时候输出了中文;解决方法:将以下行hgversion="`hg --version 2> /dev/null | sed -n -e 's@^Mercurial改成:hgversion="`LANGUAGE=en hg --version 2> /dev/null | sed -n -e 's@^Mercurial

2021-07-22 16:09:55 279

原创 MySQL8安装登录显示Access Denied

安装过程略过,使用命令启动:sudo service mysql start启动成功,然后连接:> mysql -u root -pEnter password:ERROR 1698 (28000): Access denied for user 'root'@'localhost'输入密码出直接回车表示空密码,但是无法登录;这个时候需要做两件事儿:初始化mysql的数据目录:sudo mysqld --initialize-insecure 完成后默认密码是空的,如果之前已经

2021-05-24 21:47:41 491

转载 WSL2中设置DNS后重启终端又失效的解决方法

转载地址:https://www.xieshasha.love/wsldns.iiMemoryWSL2 用着是挺好的,就是发现了一个问题,郁闷了好久,修改/etc/resolv.conf可以自己设置 dns,但重启 WSL 以后,手动设置的 DNS 就会被重置为默认的,细心看了一下默认的文件以后发现了问题的关键。WSL 自动在启动时自动根据系统的虚拟交换机WSL生成 /etc/resolv.conf文件。如下为默认的/etc/resolv.conf文件的内容# This file was automat

2021-05-01 21:23:39 5764 9

原创 ThreadRandom正确使用方法

先看代码:package muiltithreads;import java.util.concurrent.ThreadLocalRandom;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.LockSupport;public class DemoThreadRandom { public static final ThreadLocalRandom random = ThreadLoc

2021-04-27 15:47:20 557

原创 JSONField注解+继承自由切换JSON的key

JSONField注解+继承自由切换JSON的key通过@JSONField可以指定在toJSONString的时候,key的名称,比如想要变成大写或者小写;但是如果有些地方想toJSONString的时候key大写,有些地方又想小写,那可以采用父子类,通过复写get方法,来实现:package com.thunisoft.xxcx.model;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.annotatio

2021-02-02 14:59:26 521 1

原创 Main线程退出后,其他线程会继续执行么

https://zhuanlan.zhihu.com/p/74643577为操作系统分配资源的单位是进程,就算main线程退出了,进程也还在.资源还在.在进程看来,线程应该都是平级的,没有父子关系.结论:会的原因:JVM会在所有的非守护线程(用户线程)执行完毕后退出;main线程是用户线程;仅有main线程一个用户线程执行完毕,不能决定JVM是否退出,也即是说main线程并不一定是最后一个退出的线程。如果你希望在main线程退出后,所有其他线程也退出.那么你可以把其他线程都设置为守护线程.

2020-06-28 15:09:15 2829

原创 FileOutputStream构造流写入文件时覆盖的问题

OutputStream tmpOs = new FileOutputStream("result.xlsx")我想循环的向一个excel中写入数据,需要用到循环,第一次写表头,然后剩下的循环写数据,但是写完表头,从第二次循环开始写数据的时候报错,提示 new XSSFWorkbook(tmpOs)的时候,tmpOs指向的是一个空文件按照预期,循环的第一步就是写表头,这个文件应该不是空的原因:OutputStream tmpOs = new FileOutputStream("result.xls

2020-06-28 14:35:34 2095

原创 Spring中生成Bean时默认生成名称策略的坑

问题场景:定义一个类如下:@Componentpublic class MXTable{......}通过ApplicationContext.getBean("mXTable")获取这个Bean对象,但是为NULL,导致调用的时候出现空指针异常。问题原因:在使用注解生成Bean的时候,如果没有指定Bean的名称,如@Componet("mytable"),则Spring会使用默...

2020-03-05 15:10:42 823

原创 项目中实体类加lombok注解后,使用fastjson转JSONObject字段名首字母变大写

先来回顾一下场景:项目中定义一个实体类,用于和数据库做对应,这里先贴上实体类的简化定义(只保留一个字段):@Getter@Setter@ToString@NoArgsConstructor@AllArgsConstructor@Builder@ApiModel("申请基本信息表")@Table(name = "db_dzsjdc.t_yw_sqjbxx")public clas...

2019-12-18 20:35:47 3682

原创 WSL控制台下终端命令显示路径太长的解决方案

进入WSL终端,修改~目录下的.bashrc,修改内容如下:然后使用source ~/.bashrc使之生效。

2019-05-21 14:10:33 1669 1

原创 控制台中运行java类提示"找不到或无法加载主类"错误的原因及解决方案

最近在回顾基础知识的时候,想要用文本编辑器+控制台的方式写java程序,发现习惯了IDE,使用基础命令就遇到一些问题,比如,我在D:\MavenTrainingSpace\hello-world\src\main\java\jar\App.java文件中写了个HelloWorld程序:package jar;/*** Hello world!**/public class App{...

2019-05-11 21:36:58 8821 1

原创 Java项目中引入Groovy类,出现cannot be resolved to a type错误的一种解决思路

背景:项目中使用了Groovy写了一个简单的类,在已有的Java代码中想要import这个类,但是始终报:cannot be resolved to a type解决方案:安装Groovy For Eclipse的插件:如果是maven项目,在pom.xml的要引入新的包: <dependency> <groupId>or...

2019-05-06 13:37:42 3648

原创 Linux下使用awk统计进程的个数

背景数据库连接数太多了,想通过ps -ef | grep postgres查看下后台有哪些数据库连接的进程,得到的结果如下:172.23.21.83(63541) con8310305 172.23.21.83(63541) cmd530 idlegpadmin 1057 26372 0 14:51 ? 00:00:00 postgres: port 5432,...

2018-07-11 16:08:59 2468

原创 排查问题A ResourcePool could not acquire和Connections could not be acquired

在部署项目的时候,通过JDBC的日志看到如下错误信息,现在把解决方案总结一下错误提示1:A ResourcePool could not acquire a resource from its primary factory or source.错误提示2:Connections could not be acquired from the underlying database!遇到...

2018-04-04 00:05:07 916

原创 重启Postgres方法及"pg_ctl没有指定数据目录并且没有设置PGDATA环境变量-问题的解决方法"

先找到Postgres的安装目录,如/usr/pgsql-9.6,使用cd /usr/pgsql-9.6在/usr/pgsql-9.6中,切换到postgres用户:su postgres在bash中停止Postgres:bin/pg_ctl stop如果提示停止成功,则再执行:bin/pg_ctl start如果有如下提示:pg_ctl: 没...

2018-04-03 20:36:12 11895 1

原创 SQL优化手札

某个项目中,编写了大量的SQL脚本,在数据库服务器上执行,而数据库中的数据量巨大,SQL执行过程太慢,因此考虑先从SQL脚本上动刀优化。这里总结下一些优化点和依据: sql优化的实质就是在结果正确的前提下,用优化器可以识别的语句,充分利用索引,减少表扫描的I/O次数,尽量避免表搜索的发生。 (来自:https://blog.csdn.net/zlggyn/article/deta...

2018-03-28 19:03:51 172

原创 DELETE操作出现:ORA-30036: 无法按 1024 扩展段 (在撤消表空间 'UNDOTBS_1' 中)

在测试过程中需要清空数据库中的几张表,在PL/SQL客户端中使用DELETE语句,然而出现了如下错误: ORA-30036: 无法按 1024 扩展段 (在撤消表空间 'UNDOTBS_1' 中),出现这个错误的原因是DELETE操作会将删除的数据暂存在一个UNDOTBS文件中,便于事务的回滚,然而对于数据量特别大的表,例如百万以上的数据表,DELETE操作产生的临时数据会占满UNDOTBS文件,

2017-08-04 09:28:38 1752

转载 [转载]深入理解组策略一:组策略处理流程

转载自http://alligator.blog.51cto.com/36993/107174概述:    组策略是Win2003操作系统提供的一种重要的更新和配置管理技术,用来批量控制计算机和用户的环境,包括控制应用程序、系统设置和管理模板的一种机制。在AD域环境中,通过组策略可以对计算机和用户组进行高效集中化的管理。组策略是AD域环境最有吸引力的基础架构应用之一,正确高效组策略应用

2017-03-15 10:23:16 1722

翻译 翻译GitHub官方开始文档

在程序员的世界中,HelloWorld堪称历史悠久。它是我们学习一项新技术的敲门砖,那我们就在HelloWorld中开始GitHub征途的第一步吧^_^ GitHub是一个用于项目托管和协作的平台。你不需要再担心丢失硬盘上的数据或者跨平台管理项目,GitHub可以同步你的项目。另外,GitHub还可以提供协同、异步式的工作方式,使软件开发更加高效和团队化。

2015-08-03 14:27:35 799

《The Tangled Web》:“破解Web乱局”324页完整、文字(非扫描)PDF版

非扫描的完整版,共324页,可放心阅读,质量上绝对值得10分。 《The Tangled Web》“破解Web乱局”是由国际知名安全专家Michal Zalewski在畅销书《Silence on the Wire》之后推出的第二本著作。 Michal Zalewski是有着多年前沿研究经验的国际知名安全专家,曾发现过数以百计的安全漏洞,同时也是多篇具有很大影响力研究论文的作者。 《The Tangled Web》是Michal在多年对浏览器安全原创研究和“浏览器安全在线手册”基础上精心打造的,是目前仅有的一本专门关注Web浏览器安全的特色书籍,细致地揭示了浏览器的内部工作机制,深入地分析了浏览器的基础安全机制与问题,并展望了正在最新研究和应用中的一些浏览器安全特性。在本书的章节设计方面,作者在引言中回顾了Web的发展历程并分析了导致Web安全乱象的根本性原因;然后在第一部分细致地讲解了现代浏览器如何工作的基本技术机理,包括协议、文档格式、脚本语言等等,掌握这些细节性的概念与技术原理是理解分析目前浏览器安全问题与特性的前提基础;第二部分作者真正进入到浏览器的安全特性中,为读者们详细介绍了目前处于“第二次浏览器战争”的各种现代浏览器(Firefox、Chrome、IE等)所引入的包括同源策略、文档类型识别、恶意脚本处置、站点权限控制等重点安全机制,并分析了它们从设计角度即存在的一些安全问题,同时为Web程序开发者与用户提供了如何避免由于安全缺陷导致攻击和隐私信息泄露的应对措施。与其他一些书籍仅仅是对于漏洞提供简单对策不同的是,Michal利用了他在Web安全领域,特别是近年来在浏览器安全技术方向上的丰富研究经验,能够对整个浏览器安全模型进行全面剖析,来揭示出其中的薄弱环节并为提升Web应用的安全性提供出“金玉良言”;最后,作者展望和介绍了目前正在研究、标准化以及采纳过程中的一些最新的浏览器安全机制,充分了解和利用这些最新的安全机制将帮助Web应用开发者和用户防御Web威胁。为了快速索引,作者还在每章最后给出了安全工程“cheatsheet”为读者最可能遇到的浏览器安全问题提供解决方案。从总体上分析,本书还是一本极具特色,由具有丰富经验的专业技术专家出品的好书,但美中不足的是,本书第二部分对浏览器安全机制的讲解与分析内容过于精要(7章100页左右,只占三分之一左右),同时并没有结合实际攻击案例与方法来进行分析,对读者技术水平具有一定要求。

2018-03-23

Android下利用min3D引擎实现增强现实的简单例子

前段时间研究了一下Min3D游戏开发引擎,发现这个引擎很好用,例子非常细,使用起来很方便,尤其给的最后一个例子“ExampleAccelerometer”,很有意思,结合重力感应,这对于最近在做的增强现实项目有一点启发,把摄像头构成的SurfaceView和GLSurfaceView图层结合。于是这里把自己探索的过程和大家分享一下。

2012-12-17

用HTML5实现坦克大战

现在正是HTML5发展的时机,想要学习HTML5的同学,一定不要错过这个代码

2012-10-29

空空如也

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

TA关注的人

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