java

redis分布式锁-redisson

时间秒杀一切 提交于 2021-02-20 12:43:08
定义连接池 package cn.cao.config ; import org.redisson.Redisson ; import org.redisson.api.RedissonClient ; import org.redisson.config.Config ; import org.springframework.beans.factory.annotation. Value ; import org.springframework.context.annotation. Bean ; import org.springframework.context.annotation. Configuration ; /** * redisson 配置类 * Created on 2020/11/01 */ @Configuration public class RedissonConfig { @Value ( "${spring.redis.host}" ) private String host ; @Value ( "${spring.redis.port}" ) private String port ; @Value ( "${spring.redis.password}" ) private String password ; @Bean public

JAVA学习第一课-------JAVA基础

泄露秘密 提交于 2021-02-20 12:35:43
1、变量 1.1变量的概述   用于存储可变数据的容器 1.2变量的特点 (1):必须要有大小 (2):存储一定格式的可变数据(在其类型所规定的操作范围内各司其职) (3):必须有一个独一无二的名称 1.3变量的声明和赋值 int   num = 25 char ch = 'n' float price = 12.5f double weight = 12.5 1.4变量的命名规则   变量也是一种标识符,所以它遵循标识符的命名规则。   详情见3.2 2、常量 2.1常量的概述   所谓常量,就是固定不变的量,一旦被定义赋值之后,他的值就不能再被改变。 2.2常量的声明   数据类型  常量名称 =   值; 2.3常量的类型 3、标识符 3.1标识符的定义   JAVA中的包、类、方法、变量和参数的名称,我们可以自定义的一些名字,就叫做标识符。 3.2标识符的规则 (1)标识符由任意顺序的大小写字母,数字、下划线和美元符号$等组成 (2)所有标识符不能以数字开头,更不能是JAVA中保留的关键字 (3)严格区分大小写 3.3标识符命名规范 (1)包名   多个单词组成的所有字母小写(例:package com.itcast) (2)类名和接口   多个单词组成时所有单词的首字母大写(例:HelloWorld) (3)变量名和函数名   多个单词组成时第一个单词首字母小写

SHA256withRSA证书签名,私钥签名/公钥验签

丶灬走出姿态 提交于 2021-02-20 12:33:55
证书签名 package test; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.security.KeyStore; import java.security.PrivateKey; import java.security.PublicKey; import java.security.Signature; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; import java.util.Base64; import java.util.Enumeration; /** * 私钥签名,公钥验签 * @author jinzhm * */ public class SignUtil { private static String CHARSET_ENCODING = "UTF-8" ;

android.view.WindowManager$BadTokenException解决

一世执手 提交于 2021-02-20 12:29:08
一般报错日志如下 android.view.WindowManager$BadTokenException Unable to add window -- token android.os.BinderProxy@65000e for displayid = 0 is not valid; is your activity running? 还原失败(未找到符号表)(404_1_0_2_0_0_0_0_9_0) 1 android.view.ViewRootImpl.setView(ViewRootImpl.java:936) 2 android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:398) 3 android.view.WindowManagerImpl.addView(WindowManagerImpl.java:131) 4 android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4529) 5 android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51) 6 android.app

掌握这些,ArrayList就不用再学了(上)

北城以北 提交于 2021-02-20 11:47:30
ps: 一不小心又写万把字了,没办法,怕你们看不下去,分成了上下两部分! 关于ArrayList的学习 ArrayList属于Java基础知识,面试中会经常问到,所以作为一个Java从业者,它是你不得不掌握的一个知识点。😎 可能很多人也不知道自己学过多少遍ArrayList,以及看过多少相关的文章了,但是大部分人都是当时觉得自己会了,过不了多久又忘了,真的到了面试的时候,自己回答的支支吾吾,自己都不满意😥 为什么会这样?对于ArrayList这样的知识点的学习,不要靠死记硬背,你要做的是真的理解它!😁 我这里建议,如果你真的想清楚的理解ArrayList的话,可以从它的构造函数开始,一步步的读源码,最起码你要搞清楚add这个操作,记住,是源码😄 一个问题看看你对ArrayList掌握多少 很多人已经学习过ArrayList了,读过源码的也不少,这里给出一个问题,大家可以看看,以便测试下自己对ArrayLIst是否真的掌握: 请问在ArrayList源码中DEFAULTCAPACITY_EMPTY_ELEMENTDATA和EMPTY_ELEMENTDATA是什么?它们有什么区别? 怎么样?如果你能很轻松的回答上来,那么你掌握的不错,不想再看本篇文章可以直接出门右拐(我也不知道到哪),如果你觉得不是很清楚,那就跟着我继续往下,咱们再来把ArrayList中那些重点过一遍!😎

Java中的基本数据类型转换

╄→гoц情女王★ 提交于 2021-02-20 11:45:59
1.自动类型转换 自动类型转换是指:数字表示范围小的数据类型可以自动转换成范围大的数据类型。 如: long l = 100;int i = 200;long ll = i; 实线表示自动转换时不会造成数据丢失,虚线则可能会出现数据丢失问题。 自动转换也要小心数据溢出问题,看下面的例子。 int count = 100000000;int price = 1999;long totalPrice = count * price; 编译没任何问题,但结果却输出的是负数,这是因为两个 int 相乘得到的结果是 int, 相乘的结果超出了 int 的代表范围。这种情况,一般把第一个数据转换成范围大的数据类型再和其他的数据进行运算。 int count = 100000000;int price = 1999;long totalPrice = (long) count * price; 另外,向下转换时可以直接将 int 常量字面量赋值给 byte、short、char 等数据类型,而不需要强制转换,只要该常量值不超过该类型的表示范围都能自动转换。 -END- 长按订阅 ,听我聊技术 本文分享自微信公众号 - Java开发者之路(javaResource)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。

Deselect selected text in JTextPane

拟墨画扇 提交于 2021-02-20 11:23:44
问题 I have an editor in which I want to check that selected text will not contain some words. If it contains those particular words, then I need to deselect the selection made by user. Is there any way to do that in JTextPane ? 回答1: Text selection is temporaray and contiguous. You can't unselect some text in the middle of a larger string of selected text. Maybe you are talking about highlighting. Check out the API for getHighlighter(). You can add/remove highlights and specify the start/end

通达OA-感染勒索病毒漏洞分析

不羁岁月 提交于 2021-02-20 11:04:21
No.1 声明 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。 雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。 No.2 引言 开篇的首先感谢l1nk3r大佬的帮助。 前天看到通达OA官方发布的一则更新公告 http://club.tongda2000.com/forum.php?mod=viewthread&tid=128377&extra=page%3D1 No.3 第一个漏洞点 下了2017版本和最新版本的代码(这里遇到了一个坑点,2017版本的相当于只有漏洞的一半,为啥是一半后面会提到) 下载地址如下:http://www.tongda2000.com/download/2017.php 打开以后发现php代码都是混淆过后的(sublime打开如下图所示,用其他编辑器打开是乱码) 通达OA的代码加密方式用的是zend,网上找在线解密即可 也可以下载批量解密工具进行解密 然后我下载了对应版本的补丁包。通过查看补丁包发现主要是针对某一个文件进行补丁 然后针对未打补丁的和打补丁的进行对比查看,发现主要不同点在include_once('auth.php')这里

Spring bean的生命周期

爱⌒轻易说出口 提交于 2021-02-20 10:49:59
学习spring源码主框架,从源码角度开发学习Spring bean的生命周期。 spring创建bean方法 org.springframework.beans.factory.support.AbstractBeanFactory#getBean(java.lang.String, java.lang.Class<T>) public <T> T getBean(String name, Class<T> requiredType) throws BeansException { //doGetBean是获取bean的真实方法 return doGetBean(name, requiredType, null, false); } 真正执行spring创建bean方法doGetBean org.springframework.beans.factory.support.AbstractBeanFactory#doGetBean protected <T> T doGetBean( final String name, final Class<T> requiredType, final Object[] args, boolean typeCheckOnly) throws BeansException { //获取的beanname可能是重命名后的

how to pass Authorization Bearer access token in websocket javascript client

醉酒当歌 提交于 2021-02-20 10:24:39
问题 My API Manager tool mandates that i should pass the Authorization Bearer access token with the websocket invocation call. They are providing samples of java code where they do that. The bearer token is set like ("Authorization", "Bearer e2238f3a-e43c-3f54-a05a-dd2e4bd4631f") .How can i do that in javascript? // HttpResponseDecoder to WebSocketHttpResponseDecoder in the pipeline. final WebSocketClientHandler handler = new WebSocketClientHandler( WebSocketClientHandshakerFactory .newHandshaker