Java
多线程打印01 02 03 04 05 ...
多线程打印01 02 03 04 05 ... 原文:https://www.cnblogs.com/hapjin/p/17501458.html 多线程打印:01 02 03 04 05 ... main 函数中的while(true)表示线程会一直争抢锁,进行打印 通过检查条件变量是否满足,来决定打印0、还是打印奇数、还是打印偶数 volatile 变量enableOdd 在打印0之后,进行
ReentrantLock的介绍及其用法
Reentrantlock默认是非公平锁 private static ReentrantLock lock = new ReentrantLock(); 若想实现公平锁,只需使用重载构造器,fair参数传入true private static ReentrantLock lock = new ReentrantLock(true); 公平锁会按照线程请求锁的顺序进行获取,遵循先到先得的原则。而
Mybatis-Flex之QueryWrapper
1、完整DQL语句 结果 2、动态条件 结果 3、SQL函数 官方说明select function 4、Lambda 扩展 结果 5、字符串扩展 前面的所有操作都可以使用字符串的形式进行拼接,当然混着用也是可以的 结果 6、CPI工具 用于设置修改QueryWrapper相关属性信息 7、QueryWrapper方法全解 (1) select * 查询所有列 SQL
java中判断String是否为数字类型字符串
一:判断java中的字符串是否为数字,可以通过正则表达式来判断;其判断逻辑如下: 1、根据阿里巴巴代码规范,将Pattern设置为全局常量,通过 -?[0-9]+(.[0-9]+)? 进行匹配是否为数字 2、通过Matcher进行字符串匹配,如果正则匹配通过 m.matches()
Java 配置 HTTP/Socks 代理竟能如此简单
在网络请求过程中,使用代理是一种常见的需求。代理服务器可以帮助我们隐藏真实的 IP 地址、加速访问速度、访问公司特定内网等等要求。在 Java 中,我们可以通过一些库或框架来实现代理的设置和使用。 但如果使用 OkHttp、HttpClient 亦或是 Retrofit 和 Feign,需要实现 Socks 协议代理都需要实现SSLSocketFactory类或ConnectionSocketFa
js模板引擎1--制定规则
本系列文章是学习art-template和template.js的总结。 js模板引擎的用法大致如下: 模板 js代码 上面例子中的 就是模板语法规则。 约定: 变量渲染使用 <%=变量名称%> 语法; 条件判断使用 <% if(expr) { %> <% } %>js语法; 列表渲染使用 <% for(var i = 0; i &l
ThreadLocal的介绍及其使用
private static final ThreadLocal<Integer> THREAD_LOCAL = new ThreadLocal<>(); @Test void threadLocalTest() { Assertions.assertDoesNotThrow(() -> { // 线程1存储数
js模板引擎2 -- 解析模板
模板语法规则: 变量渲染使用 <%=变量名称%> 语法; 条件判断使用 <% if(expr) { %> <% } %>js语法; 列表渲染使用 <% for(var i = 0; i < expr; i++) { %> <% } %> js语法; 模板注释使用 <%# %>; 下面我们一步步的实现一个正则表达式来
QRCode.js无法识别中英文混合字符的解决办法
开源在此:https://github.com/davidshimjs/qrcodejs 引用://static.runoob.com/assets/qrcode/qrcode.min.js 这篇文章讲解了使用方法: QRCode.js:使用 JavaScript 生成二维码 : https://www.runoob.com/w3cnote/javascript-qrcodejs-li
20230517 java.io.Writer
介绍 java.io.Writer public abstract class Writer implements Appendable, Closeable, Flushable 用于写入字符流的抽象类 只有一个抽象方法需要子类实现:public abstract void write(char cbuf[], int off, int len) throws IOExcepti
20230607 java.util.concurrent.locks.Lock
介绍 java.util.concurrent.locks.Lock public interface Lock Lock 实现提供比使用 synchronized 更广泛的锁定操作。 它们允许更灵活的结构化,可能具有完全不同的属性,并且可以支持多个相关联的 Condition 对象 请注意, Lock 实例只是普通对象,它们本身可以用作 synchronized 语句中的目标。 获取 Lock
20230605 java.lang.ThreadGroup
介绍 java.lang.ThreadGroup public class ThreadGroup implements Thread.UncaughtExceptionHandler 线程组( ThreadGroup )是一个可以统一管理的线程集合。默认情况下,创建的所有线程属于相同的线程组, 但是, 也可能会建立其他的组。现在引入了更好的特性用于线程集合的操作,所以 建议不要在自己的程序中使
20230605 java.lang.Thread
介绍 java.lang.Thread public class Thread implements Runnable API 常量 线程优先级: MIN_PRIORITY 1,最小 NORM_PRIORITY 5,默认 MAX_PRIORITY 10,最大 java.lang.Thread.State 介绍 java.lang.Thread.State public
20230603 java.util.EnumMap
介绍 java.util.EnumMap public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> implements java.io.Serializable, Cloneable 键是枚举类型 API 构造器 EnumMap(Class<K> keyType)
20230602 java.util.Spliterator
介绍 java.util.Spliterator public interface Spliterator<T> 可分割迭代器 Spliterator 用于将一个数据源分割为多个部分,每个部分可以在不同的线程中进行遍历。 Spliterator 也为并行流提供了支持。 API 常量 这些常量都是特征值: ORDERED 遍历的元素以当前状态的某种特定顺序排列 DISTINC
20230602 java.util.EnumSet
介绍 java.util.EnumSet public abstract class EnumSet<E extends Enum<E>> extends AbstractSet<E> implements Cloneable, java.io.Serializable API static of noneOf allOf range 包括两端(包括)之
20230602 java.util.Enumeration
介绍 java.util.Enumeration public interface Enumeration<E> 新的实现应该考虑使用 Iterator 而不是 Enumeration 。可以使用 asIterator 方法将 Enumeration 适配为 Iterator API hasMoreElements 是否还有元素 nextElement 获得下一个元素
20230530 java.util.Comparator
介绍 java.util.Comparator 接口声明 API static reverseOrder <T extends Comparable<? super T>> Comparator<T> reverseOrder() naturalOrder <T extends Comparable<? super T>>
20230529 java.util.function.Predicate
介绍 java.util.function.Predicate 接口声明 API static isEqual <T> Predicate<T> isEqual(Object targetRef) 比较相等,类似 Objects.equals not <T> Predicate<T> not(Predicate<? super
20230529 java.util.function.Function
介绍 java.util.function.Function 接口声明 API static identity 返回入参 public apply R apply(T t); 将此函数应用于给定的参数 函数式方法 default compose <V> Function<V, R> compose(Function<? super V,
20230528 java.beans.PropertyEditor
介绍 java.beans.PropertyEditor public interface PropertyEditor 用于文本数据和 JavaBean 的特定类型属性值的互相转换 实现时一般继承 java.beans.PropertyEditorSupport 类,并重写 getAsText() 和 setAsText() 方法 Spring 中被用于数据绑定、类型转换、值校验、表达式解析等
20230528 java.beans.PropertyDescriptor
介绍 java.beans.PropertyDescriptor public class PropertyDescriptor extends FeatureDescriptor API 构造器 PropertyDescriptor(String propertyName, Class<?> beanClass) throws IntrospectionException Pr
20230528 java.beans.ParameterDescriptor
介绍 java.beans.ParameterDescriptor public class ParameterDescriptor extends FeatureDescriptor 所有的状态都来自 FeatureDescriptor 父类 API 构造器 ParameterDescriptor()
20230528 java.beans.MethodDescriptor
介绍 java.beans.MethodDescriptor public class MethodDescriptor extends FeatureDescriptor API 构造器 MethodDescriptor(Method method) MethodDescriptor(Method method, ParameterDescriptor[] parameterDescrip
20230528 java.beans.Introspector
介绍 java.beans.Introspector public class Introspector 对于每个类“Foo”,如果存在相应的“FooBeanInfo”类,在查询信息时提供非空值,则显式信息可能可用。我们首先通过获取目标 bean 类的完整包限定名称并附加“BeanInfo”以形成新的类名来查找 BeanInfo 类。如果失败,那么我们将获取此名称的最终类名组件,并在 BeanI