- 博客(72)
- 资源 (1)
- 收藏
- 关注

原创 Handler使用大全
给出了个小栗子public class MainActivity extends AppCompatActivity implements View.OnClickListener { private TextView show; public static final int UPDATE_TEXT = 1; private Handler handler = ...
2018-06-18 21:35:29
809
原创 Mybatis缓存测试
方法,二级缓存一直没生效,这里重新手写一个查询方法getAll,再加上。的联表查询(student和class联表),进行了缓存,然后。一级缓存默认开启,二级缓存默认关闭。,前面用的通用mapper的。二级缓存不适合多表查询,因为。执行了更新,但这并不会刷新。处于不同的命名空间,在。
2024-06-21 11:41:35
298
原创 策略模式+Enum
策略模式+Enum策略接口public interface Strategy { int calc(int a, int b);}Context,传入不同的策略,完成不同实现public class Context { private Strategy strategy; Context(Strategy strategy) { this.strategy = strategy; } public int work(int a, in
2021-09-02 10:06:09
301
原创 unable to connect to zookeeper server within timeout:5000
把每个zNode节点的磁盘检查一遍。磁盘满了也会造成这个错误
2020-06-17 15:09:12
477
原创 Android真机调用本地接口失败原因
1.Android开启网络权限 <uses-permission android:name="android.permission.INTERNET"/>
2020-03-24 09:33:36
875
原创 最简单的回调
前言这里展示回调从无到有的过程,看完就能明白为什么会有回调的存在。(一)A正常工作(1)Main类public class Main { public static void main(String []args){ A a = new A(); a.Work(); }}(2)A类public class A { public...
2019-07-20 16:23:33
215
原创 详解Volatile关键字
Java内存模型Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。Java内存模型规定了所有的变量都存储在主内存(Main Memory)中(仅是虚拟机内存的一部分),每条线程还有自己的工作内存(Working Memory)。线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的变量。不同线程之间也无法直...
2019-05-08 19:21:35
184
原创 垃圾收集器和常用参数
垃圾收集器参数参数描述UseSerialGC虚拟机运行在Client下的默认值,打开此开关后,使用Serial+Serial Old的收集器组合进行内存回收UseParNewGC打开此开关后,使用ParNew+Serial Old的收集器组合进行内存回收UseConcMarkSweepGC打开此开关后,使用ParNew+CMS+Serial Old的收集...
2019-04-30 18:29:16
315
原创 虚拟机栈异常类型分析
两种异常如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError异常。如果虚拟机在扩展栈时无法申请到足够的内存空间,则抛出OutofMemoryError异常。StackOverflowError(例子)(1)先设置一下栈大小为128K。(2)跑代码,无限递归。public class JavaVMStackSOF { pr...
2019-04-24 22:09:56
637
原创 对象访问方式
句柄方式直接指针优势句柄方式:在reference中存储的是稳定的句柄地址,在对象被移动(垃圾收集时移动对象是非常普遍的行为)时只会改变句柄的实例数据指针,而reference本身不需要改变。直接指针:最大好处就是访问速度快,节省了一次指针定位的时间开销,由于对象的访问在Java中非常频繁,因此这类开销积少成多后也是一项非常可观的执行成本。...
2019-04-24 14:57:16
185
原创 JVM内存区域
概念图方法区方法区与Java堆一样,是各个线程共享的内存区域。用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。Java虚拟机规范对这个区域的限制非常宽松,除了和Java堆一样不需要连续的内存和可以选择固定大小或者可扩展外,还可以选择不实现垃圾收集。相对而言,垃圾收集行为在这个区域比较少出现。内存回收目标主要是针对常量池的回收和对类型的卸载。...
2019-04-23 15:52:24
167
原创 单例模式(五种)
饿汉模式使用类的时候就已经将对象创建完毕,常见的方法就是直接new实例化。public class MyObject { private static MyObject instance = new MyObject(); private MyObject() { } public static MyObject getInstance() { ...
2019-04-18 19:26:10
170
原创 scheduleAtFixedRate的追赶性(最简单,无需看代码)
参数scheduleAtFixedRate()方法的参数TimerTask task,执行的任务Date firstTime,第一次执行任务的时间long period,周期时间直接看运行结果我设置的任务周期时间为1分钟,即1分钟执行一次从图中看出任务开始时间和当前时间间隔了4分18秒,向上取整为5任务直接就先跑了5次跑完5次后,才按照我的周期进行一分钟一...
2019-04-18 11:11:30
1001
原创 小测ReentrantLock
问题ReentantLock类的lock()和unlock()也可以实现线程间同步互斥,那么他的机制是和synchronized一样持有对象监视器,还是简单的锁定代码块呢?例子测试(1)MyService .javapublic class MyService { private Lock lock = new ReentrantLock(); public void m...
2019-04-16 19:36:11
119
原创 生产者-消费者(假死)
假死“假死”的现象就是线程进入WAITING等待状态。如果全部线程进入WAITING状态,则程序就不再执行任何业务功能了,整个项目呈现停止状态。例子(1)ValueObject 类public class ValueObject { public static String value = "";}(2)P类(生产者)当生产者进行生产的时候,是实心的★,消费者消费完后,...
2019-04-15 16:14:16
538
原创 彻底搞懂对象并发访问(七)
多线程+多对象+synchronized+static(例子)Service类public class Service { synchronized public static void PrintA() { try { System.out.println("线程名称为:" + Thread.currentThread().getName() ...
2019-04-11 15:57:15
251
原创 彻底搞懂对象并发访问(六)
多线程+单对象+synchronized+static(例子)Service类public class Service { synchronized public static void PrintA() { try { System.out.println("线程名称为:" + Thread.currentThread().getName() ...
2019-04-11 15:49:57
274
原创 彻底搞懂对象并发访问(五)
多线程+synchronized+static(例子)Service类public class Service { synchronized public static void PrintA() { try { System.out.println("线程名称为:" + Thread.currentThread().getName() + ...
2019-04-11 15:34:18
158
原创 彻底搞懂对象并发访问(四)
多线程+多对象+synchronized(例子)1)HasSelPrivateNum.java类public class HasSelPrivateNum { private int num = 0; synchronized public void addI(String username) { try { if (username.e...
2019-04-11 15:11:58
248
原创 彻底搞懂对象并发访问(三)
多线程+单对象+synchronized(例子)(1)HasSelPrivateNum.java类public class HasSelPrivateNum { private int num = 0; //注意添加了synchronized关键字 synchronized public void addI(String username) { try ...
2019-04-11 14:56:29
194
原创 彻底搞懂对象并发访问(二)
多线程+对象在方法外部(1)HasSelPrivateNum.java类public class HasSelPrivateNum { private int num = 0;//这里将num变量放到了addI()方法外部 public void addI(String username) { try { if (username.equ...
2019-04-11 12:12:27
185
原创 彻底搞懂对象并发访问(一)
多线程+对象在方法内部(例子)(1)HasSelPrivateNum.java类public class HasSelPrivateNum { public void addI(String username) { try { int num = 0;//注意此时num变量在addI()方法的内部 if (username...
2019-04-11 12:00:43
538
原创 数据库事务隔离(详细图解!!!)
Read uncommitted(读未提交)就是一个事务可以读取另一个未提交事务的数据,会导致脏读脏读:是指在一个事务处理过程里读取了另一个未提交的事务中的数据。Read committed(读已提交)就是一个事务要等另一个事务提交后才能读取数据,解决脏读,但是会导致不可重复读不可重复读:是指在对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间...
2019-03-31 23:49:43
310
原创 BeautifulSoup(豆瓣例子)
安装1.先打开路径如下,定位到Scripts2.输入命令进行安装beautifulsouppip install beautifulsoup4
2018-12-13 21:12:53
348
原创 HandlerThread(详细例子)
HandlerThread是什么HandlerThread继承自Thread,因此HandlerThread其实就是一个线程;线程开启时也就是run方法运行起来后,线程同时创建一个含有消息队列的looper,并对外提供自己这个对象的get方法,这就是和普通的Thread不一样的地方。使用流程实例对象,参数为线程名字HandlerThread handlerThread = new Hand...
2018-10-12 20:11:17
9809
13
原创 Binder简单介绍
张三李四王五你好!李四, 最近怎么样?你最近怎么样,王五?我很好,谢谢!我很好,谢谢!李四想了很长时间,文字太长了不适合放在一行.打量着王五...很好... 王五, 你怎么样?张三李四王五Client进程Binder驱动Server进程1.将传送的数据写入到Parcel对象中2.通过代理对象的transact()将数据发送到Binder驱动3.当前线程被挂起4.Android调用过程Client...
2018-10-10 21:54:29
559
原创 WebView基础
介绍如果我们需要在应用程序中展示一些页面,只需要简单的使用一下WebView控件就可以了。WebView展示百度页面1.activity_main.xml&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;?xml version=&amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;1.0&amp;amp;amp;amp;amp;amp;amp;amp;amp;quot; en
2018-10-09 20:18:27
500
原创 Activity和Fragment生命周期
setUserVisibleHint()设置Fragment可见或不可见时会调用此方法。改方法里面可以通过调用**getUserVisibleHint()**获得Fragment的状态是可见还是不可见的,如果可见则进行加载操作onAttach()执行该方法时,Fragment于Activity已经完成绑定,该方法有一个Activity类型的参数,代表绑定的Activity,这时你可以执行诸如m...
2018-09-26 09:19:55
1026
原创 最短路径问题(CODEVS 2602)
用Dijkstra算法解决#include&amp;amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;amp;gt;#include&amp;amp;amp;amp;amp;lt;cmath&amp;amp;amp;amp;amp;gt;#include&amp;amp;amp;amp;amp;lt;iomanip&amp;amp;amp;amp;amp;gt;
2018-09-23 10:43:00
213
原创 搭桥(CODEVS 1002),详细注释
说明考查最小生成树,这里用Kruskal算法实现,里面用到了并查集。#include&lt;iostream&gt;#include&lt;cstring&gt;#include&lt;cmath&gt;#include&lt;algorithm&gt;using namespace std;int n,m=0;//行列数 char input[25
2018-09-19 11:36:44
339
原创 Runtime error
说明在本地运行程序的时候没有问题,提交网站的时候一直报RE错误,检查了很久的代码,并没有数组越界,也没有除数为0的情况,最后发现问题是在main函数里面,我定义了一个string的变量,按理说应该也没什么问题,但是数据输入了2500个字符,这里应该是超出了堆栈的限制。吧变量放到全局上就可以解决。一开始的代码,会有ER错误代码只提取了会报ER错误的片段#include&amp;amp;amp;lt;iostream...
2018-09-18 10:23:52
888
1
原创 Fragment基础(一)
Fragment是什么Fragment是一种可以嵌入在活动当中的UI片段,它能让程序更加合理和充分地利用大屏幕空间,因而在平板上应用地非常广泛。和Activity比较相似,同样包含布局,同样有自己的生命周期。甚至可以将碎片理解成一个迷你型活动。最简单使用比如在一个activity嵌入两个fragment,像这样 一.创建left_fragment.xml&amp;amp;lt;?xml ve...
2018-09-15 13:38:54
169
1
原创 6个朋友(CODEVS 2832)
考查并查集#include&amp;amp;lt;iostream&amp;amp;gt;#include&amp;amp;lt;algorithm&amp;amp;gt;using namespace std;int f[100005]={0},n,m,sum,maxPeople=0; int tcount[100005]={0};//初始化,数组里面存的是自己的数组下标的编号就好了 void init(){
2018-09-13 08:15:50
339
原创 ContentProvider跨程序共享数据(二)
读取联系人以读取联系人为例子,实战使用一下。 activity_main.xml&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;amp;gt;&amp;amp;lt;RelativeLayout xmlns:and
2018-09-12 15:44:37
717
原创 滚动控件RecycleView(基础)
引入依赖compile 'com.android.support:recyclerview-v7:26.1.0'创建Beanpublic class MeetingCheckBean { private String name; private String address; public MeetingCheckBean(String name, Str...
2018-09-08 23:13:09
271
原创 圆角Button
第一步演示一个登陆按钮,在drawable下新建radius_button_login.xml&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;&amp;lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res
2018-09-08 11:53:50
690
RmqWithShifts
2017-11-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人