![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 55
20481024
一般
展开
-
jenkins 调用ant 执行java 错误: 找不到或无法加载主类 com.****.JenkinsMakeHotJar
原因是jenkins工程使用中文名配置参考 <path id="classpath2"> <pathelement location="hotfixjob/"/> <fileset dir="${dist}/lib" includes="***.jar"/> </path> <java classname="com.**.JenkinsMakeHotJar" classpathref="classpath2" .原创 2022-04-15 11:56:06 · 1322 阅读 · 1 评论 -
logback MaxHistory cleanHistoryOnStart日志文件保留天数不生效 删除老的日志
删除扫描的时间范围有计算策略 不是过期文件都删除 <!-- 日志最大的历史 7天 --> <property name="maxHistory" value="15"/> <!--日志文件配置--> <appender name="HOTFIX" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.原创 2021-06-01 15:35:57 · 7316 阅读 · 0 评论 -
记一次磁盘占满 句柄占用 删除文件 删除句柄
原因 逻辑错误导致日志飙升df -h 内存百分百1慌忙中rm 日志文件 发现内存没下来是不是有其他文件?sort -rn 排序一级一级找没找到 du --max-depth=1 -h2进程占用估计 查看那个进程占用还是自己lsof -n | grep deleted/proc/pid/fd/{pid}/fd/pid/fd/{id}解决方法1 文件没有被删除echo " “>filename: > /path/to/the/filename.log2 文件原创 2020-08-03 20:24:19 · 753 阅读 · 0 评论 -
java poi 读取单元格null者空字符串
Cell cell = row.getCell(j, Row.RETURN_BLANK_AS_NULL);需求 :策划同学填写的单元格有时为null 有时为空串 分条件处理getcell 可以传入指定的策略 根据需求拿到结果分需处理原创 2020-05-15 12:15:58 · 2549 阅读 · 0 评论 -
while循环卡死业务线程
原创 2020-04-14 17:38:22 · 1854 阅读 · 0 评论 -
java 遍历 proto枚举类MessageTypeProto.MessageType 并输出枚举名称
for (MessageTypeProto.MessageType messageType:MessageTypeProto.MessageType.values()) { String name = messageType.getValueDescriptor().getName(); System.out.println("args = ["...原创 2020-03-24 14:58:26 · 1039 阅读 · 0 评论 -
java项目中常用的封装工具类MathUtils
1最大公约数 public static int GetGCD(int a,int b){ if(a<0 || b<0){ return -1; } if(b==0){ return a; } while (a%b!=0){ i...原创 2019-12-18 17:41:01 · 2074 阅读 · 0 评论 -
idea中优雅关闭程序 调用钩子函数addShutdownHook
优雅关闭jvm执行标记结束 处理积累的的数据 释放资源 关闭连接等后续操作需要正常关闭jvm(jvm只有在只有守护线程的时候会自动关闭)1 等程序自行运行完毕2 调用System.exit():或者根据操作系统监听的信号量linux的信号2 SIGINT 进程终端 CTRL+C9 SIGKILL 强制终端15 SIG...原创 2019-12-17 16:31:21 · 3503 阅读 · 0 评论 -
记一次内存溢出
java应用 内部调用lua处理战斗 几天后线上运行卡顿lua对象飙升线上紧急重启后运行2天的内存信息对象信息jmap -histo:live 10342 |grep lua 内存信息(G1 jstat、jmap 查看survivor 始终100% 因为和其他垃圾回收器不同的是 sur0 sur1地址不固定)gc信息看下当前内存分配显示配置和G1的默认参数-Dfile.e...原创 2019-12-10 16:24:00 · 531 阅读 · 0 评论 -
反射时Java实例变量 构造函数初始化顺序变化
正常 先是实例变量 再是构造函数newInstance() 顺序相反附加一下完整的顺序父类静态变量父类静态代码块子类静态变量子类静态代码块父类实例变量父类代码块父类构造函数子类实例变量子类代码块子类构造函数...原创 2019-10-12 15:10:57 · 215 阅读 · 0 评论 -
AQS CLH队列 Node节点浅析
AQS 实现的同步框架 构建和维护双向的同步队列获取锁的方式 是独占还是共享? 能不能获取锁? 获取锁的优先级是公平还是非公平?都是有上层各种同步器实现实现的这里说的锁都是aqs里面的一个volatile变量 aqs获取操作同步资源的接口 有实现类来定义逻辑ReentrantLock 重写aqs获取和释放锁的方法 是否公平进入队列修改state同步资源 实现公平和非公平锁 锁作为一种...原创 2019-05-22 17:00:52 · 1726 阅读 · 0 评论 -
AQS 释放锁源码浅析
head节点一定是拿到锁的节点 head后继的尝试获取资源的节点 其他节点都是阻塞的回顾简单的入队方法 //创建节点 和waitting模式 //cas快速添加到队尾 失败进入enq循环添加 private Node addWaiter(Node mode) { .... enq(node); .... } //入队操作...原创 2019-05-23 14:35:28 · 537 阅读 · 1 评论 -
位运算技巧
1判断是不是2的n次幂Random类中的(bound & (bound -1)) == 0 public int nextInt(int bound) { if (bound <= 0) throw new IllegalArgumentException(BadBound); int r = next(31); ...原创 2019-06-12 16:47:08 · 170 阅读 · 0 评论 -
wait notify
超类object 5种方法final 类型 子类不可覆盖重写放在同步代码块里原因 个人猜想一个是这个native 执行的时候如果不在同步代码块里会抛异常 这是其一在一个这样做的目的是 既然使用notify 和wait 肯定会有一个临界区的资源用来作为标志 在判断和操作的过程这应该是原子性的行为 如果执行完判断 跳出同步代码块再掉wait 可能会在中间丢掉 notify的状态 进入一直等...原创 2019-06-10 20:11:45 · 140 阅读 · 0 评论 -
java exception
异常全览异常是虚拟机抛出来 供开发人员处理的错误一 :五个按关键字 try catch finally throw throwstry 逻辑代码catch 捕获异常finally 常用来关闭 try中打开的资源 文件io链接 数据库io链接 网络io链接 执行完之后 执行trythrow 主动抛出异常throws 声明方法可能出现异常易混问题a:带return语句的代码执...原创 2019-06-11 10:43:42 · 116 阅读 · 0 评论 -
java线程状态 源码浅看
Thread概念Thread流程1线程状态流程流转过程2Thread流程控制和调度方法JMM和多线程安全1多线程安全操作 互斥2多线程安全操作 协同java虚拟机1 运行时数据区2 类加载3 GC4 java实例运行调优一: Thread概念线程是操作系统能够进行运算调度的最小单位 代表了一条顺序的执行流二: Thread流程1 切换过程线程状态 NEW R...原创 2019-07-02 20:30:27 · 362 阅读 · 0 评论 -
HttpServletRequest支持post get JSONObject解析
public BaseVo getResult(@PathVariable String uri, HttpServletRequest request) { try { JSONObject jsonObject = new JSONObject(); if (request.getMethod().equals("GET")) ...原创 2019-08-21 14:46:06 · 1021 阅读 · 0 评论 -
Redis 数据结构了解点
一 :容器类的 hash list set zset1、操作数据时 不存在则创建2、没有内容时 容器自动删除二:过期时间1、所有数据结构都可以设置过期时间2、 过期时间针对数据结构对象 不包括容器内容三:1、string 动态字符串a.占用内存高于实际内容大小b.小于1M 成倍扩容 2大于1M 1M /次 扩容2、lista.list 通性 插入删快索引慢b.list列...原创 2019-09-17 10:13:45 · 81 阅读 · 0 评论 -
linux命令笔记
$()和 命令替换 执行内部的命令$0 当前脚本的文件名$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。$# 传递给脚本或函数的参数个数。$* 传递给脚本或函数的所有参数。$? 上个命令的退出状态,或函数的返回值。获得当天的日期date +%Y-%m-%d输出: 2011-07-28将当前日期赋值给DATE变量DAT...原创 2019-05-22 12:41:32 · 106 阅读 · 0 评论 -
ReentrantLock 加锁浅析
ReentrantLock 整体结构ReentrantLock 依靠内部的Sync变量 实现锁的功能Sync抽象类继承自AQS1:AQS实现同步框架(构建同步队列,控制同步状态) 预留出了获取和释放共享资源的方法供子类实现2:也就是说Sync 及它的实现类只是重写了获取和释放的方法 核心逻辑在AQS中3:加Sync抽象类为了让子类重写lock 和tryacquire 实现公平和非公平...原创 2019-05-20 21:01:13 · 1689 阅读 · 0 评论 -
ThreadLocal ThreadLocalMap浅析
先发一个最常见的图一:关键字 ThreadLocal ThreadLocalMap Thread1 概念 ThreadLocal理解:ThreadLocal类用来设置线程私有变量 本身不储存值 主要提供自身引用 和 操作ThreadLocalMap 属性值得方法,使用ThreadLocal会通过ThreadLocal的引用定位到到堆中Thread的类ThreadLocalMap里散...原创 2019-05-10 15:58:50 · 11476 阅读 · 2 评论 -
webview调本地相册上传图片
在网页中操作有上传图片的需求,大致可以通过以下两种方法解决1:通过js回调 网上资料很多 我简述以下 通过回调在Android代码上调起相册 获得图片后 上传到服务器 注意接口里面的逻辑不能有ui操作2:因为4.4前后差距比较大 各种逻辑方法不同 需求需要自己在代码里去区分实现webview设置 mBbsWebView.setWebChromeClient(new原创 2017-06-29 20:59:31 · 362 阅读 · 0 评论 -
代码混淆后自定义view报空指针
因为自定义View的 在xml引入 混淆代码后创建view的时候找不到自定义的名称及方法原创 2017-06-29 20:12:32 · 959 阅读 · 0 评论 -
java android utf16转Unicode
for (int i = 0; i < len; i++) { char codePoint = str.charAt(i); char codePoint2=str.charAt(i); if(i<len-1){ codePoint2 = str.charAt(i+1)原创 2016-12-09 22:58:39 · 607 阅读 · 0 评论 -
android 发送系统表情
android显示系统表情很简单 但是在发送这一块却犯了老大难,在开发过程中需要将系统表情符号和表情抽出一套对应关系给服务器,但系统表情在输出的时候却乱码,这我就凌乱了,所以要将系统表情处理成一种标识符,发送到服务器。 我的解决方法, 1:unicode–系统表情: character.tochars(unicode) android系统制动识别成系统表情 如 “0x1f601” 处理后即原创 2016-12-09 22:48:14 · 1383 阅读 · 0 评论 -
利用手机gps获取经纬信息定位
“` public String Getlocation(){ manager = (LocationManager) mactivity.getSystemService(mactivity.LOCATION_SERVICE); Location location = manager.getLastKnownLocation( LocationManager.GPS_PROVIDER原创 2016-04-10 22:36:19 · 1922 阅读 · 0 评论 -
学习笔记4/5(相对布局 布局文件顺序问题
相对布局控件设置问题<ImageButton android:id="@+id/imageview2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/icon1"/><ImageButton an原创 2016-04-05 08:21:08 · 320 阅读 · 0 评论 -
学习笔记4/3(使用int问题
int 整型不可以赋值为空,即不存在null的可能,它在定义时即分配空间,所以总会有一个值 对于Integer可以是null在函数中不可以将实参设为null 否者会出现不匹配的情况原创 2016-04-03 19:33:51 · 517 阅读 · 0 评论 -
巧说Handler原理
今天通俗的来说下handler 一为了加深自己的印象 二为了和大家共同讨论学习 如有错误 望大家指正 谢谢 转载请说明关键词:Handler、Loopler、 MessageQueue、 Message高度概括核心就是: 1:Looper不断从MessageQueue获取Message给Handler处理 2:Handler在A线程处理B线程传过来的消息 3:一个Thread对应一个原创 2017-08-03 14:51:24 · 389 阅读 · 0 评论 -
xutils +Gson解析json(从服务器中获取json并解析)
从服务器获取json函数“http://192.168.3.17:8080/newdata.json“是本地服务器文件的地址 (1.如果在局域网中的ip总是变化 可以进入路由器进行设置 可以与本机匹配固定ip, 2,tomcat默认端口是8080,如果想省略需要去tomcat的配置文件中去配置)vuperson 是首先定义好的bean对象 用来与json数据对应private void g原创 2016-04-23 11:59:20 · 1279 阅读 · 0 评论 -
Looper源码细说
Looper作为引擎般的存在,主要作用是维持一个死循环,一旦有消息到来就通知handler分发事件。Looper的创建 //线程中初始化 获取Looper public static void prepare() { prepare(true); } private static void prepare(boolean quitAllowed) {/原创 2017-08-10 17:44:50 · 346 阅读 · 0 评论 -
线程池笔记
newsingleThreadExecutor 创建一个工作线程 保证说有任务流程化执行newFixedThreadPool 创建一个定长的线程池 控制并发数量 超过指定长度在队列中等待newCachedThreadPool 创建一个理论上可以无限大的线程池 适合时间短小的任务 cachedqueue 没有存储空间 没有空闲线程 将直接创建一个新的线程来执行任务newScheduledTh...原创 2019-02-28 17:19:35 · 145 阅读 · 0 评论 -
异步同步随笔
关于同步和异步见解;同步异步 阻塞非阻塞 同步io异步io 阻塞io 非阻塞io同步可以造成阻塞 但是逻辑上的阻塞 请求一个结果 后面逻辑要等到结果的返回才执行 这个是由代码逻辑决定的同步io和异步io是用户空间和内核调用的一种交互机制 用户主动从内核中获取数据recyfrom阻塞io 是从内核中读取数据导致导致线程或进程进入停止状态异步、非阻塞(抛开io) 都是为了不妨碍其他过程...原创 2019-02-28 14:45:32 · 126 阅读 · 0 评论 -
android view touch事件传递小结
1子控件请求父控件不拦截事件 requestDisallowInterceptTouchEvent 是在第二个非dowm事件中生效 down 事件中标志位会被重置(resetTouchState()) 换句话就是requestDisallowInterceptTouchEvent 只对当前事件流的非down事件有效例 正常的viewGroup子类 在down事件进入子控件被消耗时 下次...原创 2018-03-12 16:53:17 · 263 阅读 · 0 评论 -
java运算符 |=或者&=~处理标志位 运算意义
一般是将一个整型常量的某一位作为标志位 进行运算 达到控制程序的目的(源码经常使用 很头疼)例 :初始化一个整型 int TAG mTag;//初始值0000 0000在来一个标志常量 static CHANGE_TAG=0x80; //1000 0000第8位为标志位 判断条件isTagif(isTag){ mTag |=CHANGE_TAG; //将标...原创 2018-03-09 16:59:00 · 7473 阅读 · 0 评论 -
android 微信跳一跳 小游戏 辅助
借助adb可以精确的模拟手势进行跳跃 原理就是使用一下命令 adb shell input swipe ax ay bx by time ax ay bx by 为模拟触摸按下和抬起的坐标 time需要填上就是手势时间 adb shell input swipe 500 500 200 200 700原创 2018-01-02 10:39:51 · 384 阅读 · 0 评论 -
微信分享 微信对图片文字大小的限制 代码如下
微信分享 微信对图片文字大小的限制 代码如下final boolean checkArgs() { if ((getType() == 8) && (((this.thumbData == null) || (this.thumbData.length == 0)))) {原创 2016-11-03 15:10:52 · 11973 阅读 · 2 评论 -
Android开发随手记1
自定义空间出错 错误信息 java.lang.ClassCastException: android.widget.ListView cannot be cast to com.example.main_viewpage_view.mlistview原因细节问题 忘了将布局里的空间改名listview改为com.example.main_viewpage_view.mlistview(mlist原创 2016-04-03 12:35:49 · 448 阅读 · 0 评论