Java JUC之Atomic系列12大类实例讲解和原理分解 2013-02-21      0个评论       作者:xieyuooo 收藏    我要投稿 在java6以后我们不但接触到了Lock相关的锁,也接触到了很多更加乐观的原子修改操作,也就是在修改时我们只需要保证它的那个瞬间是安全的即可,经过相应的包装后可以再处理对象的并发修改,以及并发中的ABA问题,本文讲述Atomic系列的类的实现以及使用方法,其中包含: 基本类:AtomicInteger.AtomicLong.Atomic…
uri is not hierarchical 学习了:http://blog.csdn.net/zdsdiablo/article/details/1519719 在swt中获取jar包中的文件: Image backgroundImage = null; try { backgroundImage = new Image(Display.getCurrent(), this.getClass().getResourceAsStream("login.jpg")); } catch…
同一个war包中多个接口做自动化测试 一个接口用一个测试类,每个测试用例如下,比如下面是4个测试用例,每个详细的测试用例中含有请求入参,返回体校验,以此来判断每条测试用例是否通过 一个war包中,若含有多个接口,则增加多个测试类,每个测试类对应的测试用例 问题是: 1. 如果接口中需求复杂,入参较多,测试用例较多,则单个测试用例会非常的长,占很大的篇幅.比如注册接口,我遇到了20个入参,那我的键值对有20个左右: 注册接口,测试用例有上百个,那我一个java文件几千行,太长了,自己都不想看下去了…
最开始是想将各个类分门别类地存放在不同的包中,所以想在项目源码包中新建几个不同功能的包eg:utils.model.receiver等,最后的结果应该是下图左边这样的:   很明显建立项目后的架构是上图右边这样的,所以后面理所当然地选择new-->package,name栏填上activity,然而结果是下面左边这样的... 这样的结果明显与预想的不一样,我们看到activity与com.mukekeweather.app是并行结构,而我们需要的是树状结构的 查了很多资料之后才弄明白这个问题,因…
在之前 获取 AppStore 中 应用 的 IPA 包文件(Mac OS 13+)中获取到应用的 IPA 包,可以取出应用的部分图片(如 Logo),如果项目工程中把图片添加到 Assets.xcassets 中的话,只能在包中看到 Assets.car 文件,这时需要把里面的图片资源取出来. 在 Github 上 cartool是专门解决这个问题的开源工具,下载,使用 Xcode 打开工程,添加如下配置: 运行工程,就可以看到控制台有输出 Log 在指定文件中就会有解压过的图片资源. ---…
从视图的Python代码中把变量传入HTML模板. 模板中使用哪种句法引入Python对象,要使用的符号{{...}},它会以字符串的形式显示对象: <html> <head> <title>To-Do lists</title> </head>> <body> <h1>Your To-Do list</h1> <form method="POST"> <input…
引言 Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便程序员在多线程环境下,无锁的进行原子操作.原子变量的底层使用了处理器提供的原子指令,但是不同的CPU架构可能提供的原子指令不一样,也有可能需要某种形式的内部锁,所以该方法不能绝对保证线程不被阻塞. Atomic包介绍 在JDK1.8 Atomic包里一共有17个类,四种原子更新方式,分别是原子更新基本类型,原子更新数组,原子更新引用和原子更新字段.Atomic包里的类基本都是使用Unsafe实现的…
(简单的方式:通过jd-gui来进行反编译,最简单!,参考我的另一篇博文, 地址:http://www.cnblogs.com/gmq-sh/p/4277991.html) Java Decompiler Plugin For Eclipse IDE 1. 下载JAD ,  1.5.8版本的jad在 http://www.softpedia.com/progDownload/JAD-Download-85911.html 将展开后的jad.exe放到某个目录,例如 c:/jad/jad.exe…
刚git了webpack的包发现package.json里面dependencies依赖包的版本号前面的符号有两种,一种是~,一种是^,如下图标记: 然后搜了下在stackoverflow上找到一个比较好的答案所以在此mark下 ~,^的区别是 ~的意思是匹配最近的小版本 比如~1.2.3将会匹配所有的1.2.x版本,但不匹配1.3.0, 1.2.0 <= ~1.2.3 <1.3.0 ^的意思是最近的一个大版本 比如1.2.3 将会匹配 所有 1.x.x 包括1.3.0 但不包括2.0 1.0…
Redis总结(五)缓存雪崩和缓存穿透等问题   前面讲过一些redis 缓存的使用和数据持久化.感兴趣的朋友可以看看之前的文章,http://www.cnblogs.com/zhangweizhong/category/771056.html .今天总结总结缓存使用过程中遇到的一些常见的问题.比如缓存雪崩,缓存穿透,缓存预热等等. 缓存雪崩 缓存雪崩是由于原有缓存失效(过期),新缓存未到期间.所有请求都去查询数据库,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机.从而形成一系列连锁…
Guava包中限流实现分析 RateLimiter 之前的文章中已经介绍了常用的限流算法,而google在Java领域中使用Guava包中的限流工具进行服务限流. 回顾使用案例 Google开源工具包Guava提供了限流工具类RateLimiter,该类基于令牌桶算法实现流量限制,使用十分方便. @Test public void testSample() { RateLimiter rateLimiter = RateLimiter.create(500) } 以上示例,创建一个RateLim…
前面讲了webapi的安全验证和参数安全,不清楚的朋友,可以看看前面的文章,<Web API系列(二)接口安全和参数校验>,本文主要介绍Web API异常结果的处理.作为内部或者是对外提供的统一webapi 接口,统一的异常处理,把正确的信息返回给调用者很重要.这样可以让接口开发人员,了解具体的原因所在,这样可以得到有效的错误处理. 需要注意的是,webapi异常的状态码,尽量不要和业务状态码混淆.可以分为两个不同的字段,或者是状态码的规则不同.相关返回数据的格式,可以参考,前面的文章. 1.…
Java 之 I/O 系列 目录 Java 之 I/O 系列 01 ——基础 Java 之 I/O 系列 02 ——序列化(一) Java 之 I/O 系列 02 ——序列化(二) 继续上篇的第二个问题 如果一个类实现了Serializable接口,但是它的父类没有实现 ,这个类可不可以序列化? Object是每个类的超类,但是它没有实现 Serializable接口,但是我们照样在序列化对象,所以说明一个类要序列化,它的父类不一定要实现Serializable接口.但是在父类中定义 的状态能被…
前言:做ae开发大部分人都是用C#版,很少用到java版,本系列文章主要介绍java版ae开发的入门,对于ae接口的高级应用,可以看C#版相关文章 开发环境软件: Intellij IDEA 2018 java jdk 1.8 32位版 arcgis desktop 10.4.1 ArcObject sdk java 10.4.1 PS:本文要求读者有一定java开发基础,有jdk配置和idea使用经验,否则牵涉基础知识太多没法解释全 PS:本文使用的控件库是swing,swing是目前java…
Java基础知识陷阱系列 今天抽空把Java基础知识陷阱有关的文章汇总于此,便于大家查看. Java基础知识陷阱(一) Java基础知识陷阱(二) Java基础知识陷阱(三) Java基础知识陷阱(四) Java基础知识陷阱(五) Java基础知识陷阱(六) Java基础知识陷阱(七) Java基础知识陷阱(八) Java基础知识陷阱(九) Java基础知识陷阱(十)…
一.what's the JPype JPype 是一个能够让 python 代码方便地调用 Java 代码的工具.在某些时候 java 的能力更强,我们可以用 java 写一个模块的功能然后用 Python 去调用.当然相应的也可以反着来,Java 使用 jython 调用Python JPype与Jython(JPython后继者)的区别? 运行环境不同:jython 运行在 jvm 上,而J Pype 的实际运行环境仍然是 python runtime,只是在运行期间启动了一个嵌入的jvm…
日常开发中的api都在rt包中,具体路径为:/jdk1.8.0_162/jre/lib中,注意是在jre中. 每个包中大致包含以下几个部分: 接口 类 枚举 异常 错误 注解 J2EE开发中常用的包 java包(核心包) java语言本身 java.lang: java.util: 日期.数学计算 java.time java.math java.text io java.io: java.nio: 网络通信 java.rmi: java.net: 安全 java.security: 数据库 j…
0.java中的正则 java 中的正则总共涉及三个类(或者说1个String类和一个regex包) java.lang.String java.util. Matcher java.util.Pattern 1.什么是正则表达式? 正则表达式是一种用来描述一定数量文本的模式.Regex代表Regular Express.我们使用一种自定义的模式来匹配一定数量的文本,并从中提取所需数据.正则只和字符串相关了.       字符组:[字符组] [a-zA-Z] a 到 z 或 A 到 Z, 两头的…
android制作jar包: 新建android工程,然后右击,点击导出,选择导出类型为Java下的JAR file,在java file specification 中不要选择androidmanifest.xml和res文件夹,就可以了.否则在调用jar包的时候会出现“Error generating final archive: Found duplicate file for APK: AndroidManifes”这个错误. 如果在android用调用jar包,需要在工程的属性的Jav…
一,页面上引用jar包中的js文件的方法 使用java web框架AppFuse的时候发现,jquery.bootstrap等js框架都封装到jar包里面了.这些js文件通过一个wro4j的工具对其进行了压缩集成到一个js文件里面.页面使用的时候的时候,引用这一个js文件即可.通过解读wro对于js处理的过程,找到了html或者jsp引用jar包中的js文件的方法: <c:set var="base" value="${pageContext.request.conte…
*.Java文件 问题:一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 答案:可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致.一个文件中可以只有非public类,如果只有一个非public类,此类可以跟文件名不同. 为什么一个java源文件中只能有一个public类? 在java编程思想(第四版)一书中有这样3段话(6.4 类的访问权限): 1.每个编译单元(文件)都只能有一个public类,这表示,每个编译单元都有单一的…
原文转载自:http://blog.csdn.net/mr_von/article/details/7740138 在使用Java语言开发的过程中,开发人员经常需要用到一些开源的工具包.在使用别人的jar包的时候,为了保证正常调用包内的方法需要把jar包 添加到Referenced Libraries或者Libraries中.由于jar中通常只打包了类的二进制文件,其JavaDoc文件仍需要以浏览器或chm帮助文档的方式查 看.Eclipse开发环境中提供了将JavaDoc文档附加到jar包中的…
我这里的android studio的版本是2.2.3版本 一.现在大家都用android studio了,就有人问怎么使用jar包 其实使用jar包比较简单 直接吧jar放入工程的app目录下的libs中 像这样: 二.使用arr包 参考:Android studio 如何打.aar包,并应用 jar包即使包含了xml资源,在应用的时候也会报资源找不到的错误,为什么?因为在引用这个jar包的工程中,jar包中引用ID 指向的是当前项目的资源,目前也没有针对此的解决方法.aar包的出现,让打包资…
从前面的系列博客中可以看出Jdk8中java.time包中的新的日期时间API类设计的很好,但Date由于使用仍非常广泛,这就涉及到Date转LocalDateTime,LocalDateTime转Date.下面是时间类互相转换大全,包含Instant.LocalDate.LocalDateTime.LocalTime.ZonedDateTime和Date的相互转换,时间转换大全,下面是一个工具类,仅供参考: 具体包含: LocalDateTime转Date,LocalDate转Date,Loc…
目录 0.前言 1.TemporalAccessor源码 2.Temporal源码 3.TemporalAdjuster源码 4.ChronoLocalDate源码 5.LocalDate源码 6.总结 0.前言 通过前面Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类中主要的类关系简图如下: 可以看出主要的LocalDate, LocalTime, LocalDateTime, Instant都是实现相同的接口,这里以LocalDate为例分析jav…
通过Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类中时间范围示意图:可以很清晰的看出ZonedDateTime相当于LocalDateTime+ZoneId. ZonedDateTime是用来处理时区相关的时间,它的各种计算都离不开ZoneId.先看ZoneId. 1. ZoneId 为时区ID,比如Europe/Paris,表示欧洲巴黎时区 1.1 时区相关知识,时区,UTC时间,GMT时间,Unix时间戳 时区 地球自西向东旋转,东边比西边先看到…
1.DateTimeFormatter final修饰,线程安全,用于打印和解析日期-时间对象的格式化程序. 创建DateTimeFormatter: DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault()); 2.格式化日期 例如:LocalDateTime LocalDateTime localDa…
通过Java日期时间API系列7-----Jdk8中java.time包中的新的日期时间API类的优点,java8具有很多优点,现在网上查到的农历转换工具类都是基于jdk7及以前的类写的,下面使用java新的日期时间API重写农历LunarDate. package com.xkzhangsan.time; import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import ja…
通过Java日期时间API系列10-----Jdk8中java.time包中的新的日期时间API类的DateTimeFormatter, 可以看出java8的DateTimeFormatter完美解决了SimpleDateFormat线程安全问题.下面是关于DateTimeFormatter的使用实例,包括常用日期格式大全, 以2020-01-01 00:00:00为例. package com.xkzhangsan.time.test; import java.time.LocalDateTi…
因为Jdk7及以前的日期时间类的不方便使用问题和线程安全问题等问题,2005年,Stephen Colebourne创建了Joda-Time库,作为替代的日期和时间API.Stephen向JCP提交了一个规范,他本人作为规范的领导人,该规范就是JSR 310,在Java8中实现并发布. 1.Java8日期.时间API包介绍 java.time包:这是新的Java日期/时间API的基础包,所有的主要基础类都是这个包的一部分,如:LocalDate, LocalTime, LocalDateTime…