- 博客(19)
- 收藏
- 关注
原创 《Java高并发程序设计》阅读笔记
第一章1. 同步和异步2. 并发和并行3. 临界区:表示一种公共资源,可以被多个线程使用,但是每一次只能有一个线程使用它,一旦临界区资源被占用,其他线程想要使用这个资源就必须等待。4. 阻塞和非阻塞5. 死锁、饥饿、活锁饥饿:某一个或者多个线程因为种种原因无法获得所需要的资源,导致一直无法执行。比如它的线程优先级可能太低。活锁:线程互相谦让,主动将资源释放给其他线程,导致资源不断地在两个线程中跳动,而没有一个线程可以同时拿到所有资源而正常执行。6. 并发级别阻塞:无论是s
2021-05-13 17:22:45 116
原创 “jar中没有主清单属性”问题的解决方法
今天想要把springboot项目打成jar包部署在服务器上,但是在使用 java -jar XXX 指令时遇到了“jar中没有主清单属性”的问题。在官网上看到这样一段话,发现是因为pom文件里没有加上repackage,修改后解决了这个问题,希望对大家有帮助。<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <arti
2020-11-19 22:14:33 2420
原创 MyBatis:使用MyBatis Generator快速完成Springboot项目数据层开发
使用场景当我们使用Springboot整合Mybatis时,我们就需要为数据库中的每一个表分别写出:实体类 Mapper.xml文件 Mapper接口如果数据库中有很多表,这个过程就会非常的繁琐。而MyBatis官方为我们提供了MyBatis Generator插件,我们只需要以下介绍的三个步骤就可以快速地生成以上三个文件,极大的简化了数据层的开发。官网:MyBatis Generator项目准备以下用一个例子来演示如何在项目中使用MyBatis Generator,项目使用的环境
2020-10-24 21:55:22 201
原创 MyBatis:使用动态SQL简化代码
1. 动态SQL相关使用动态SQL可以避免写一些重载函数,以下给出了 select 和 update 的例子1.1select当有条件时,按条件进行选择;没有条件时,返回全部数据例子:当传入的map中包含了title时,按title进行查询,如果没有则返回全部数据<select id="selectBlog" parameterType="map" resultType=""> select * from blog <where> .
2020-10-14 17:40:45 168
原创 Android Studio 查看当前显示的 activity
在修复bug时,首先需要定位到是哪个activity出现的问题,这时可以使用adb工具。abd工具在SDK目录下的platform-tools文件夹下。1. 打开Android Studio的Terminal,进入到adb.exe所在的路径2. 执行adb shell 进入 shell3. 执行以下指令就可以看到当前显示的activitydumpsys window | grep mCurrentFocus...
2020-06-30 17:55:08 3189
原创 RecyclerView中Item循环出现的原因
APP里出现了RecyclerView中Item会循环出现的错误,但是保存Item的list是正常的,最后定位到了onBindViewHolder函数。@Overridepublic void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { Log.d("position", "" + position); ......}输出的结果发现position循环了。在stack overfl
2020-06-23 17:26:35 324
原创 Binder
为什么使用多进程:App运行独立的虚拟机,每个进程分配运行内存是有限的——32M、64M,如果加载一个大图片就会直接OOM。多进程可以解决内存不够的情况。 如果功能崩溃了不会影响进程,比如微信小程序崩了不会影响其他进程。Binder 安卓专门制造的通信机制性能:内存空间是分开的但是内核空间是公用的虚拟空间、物理空间传统的IPC先从进程1拷贝到内核空间,再从内核空间拷贝到进程...
2020-05-06 00:24:46 145
原创 ThreadLocal
可以通过ThreadLocal在同一个线程,不同的组件中传递公共变量。每个线程的变量都是独立的,不会相互影响。使用示例public class MyThead { ThreadLocal<String> stringThreadLocal = new ThreadLocal<>(); private String name; publi...
2020-05-05 17:10:45 101
原创 Android 视图绑定(ViewBinding)在Activity、Fragment和Adapter中的用法(java)
今天打开Butter Knife,发现作者说“This tool is now deprecated. Please switch toview binding.”于是学习了一下这个新功能,在这里记录一下。这个功能是用来代替findViewById的,使用之前首先要在模块的build.gradle中添加以下代码android { ... viewBin...
2020-04-20 17:47:53 9120 1
原创 Java多线程及相关知识总结(临界资源问题等)
1. 实现多线程的方法// 方法1 继承Thread类class MyThread extends Thread{ @Override public void run(){ System.out.println(); }}MyThread thread = new MyThread();thread.start();//方法2 实现Runn...
2020-04-19 00:11:31 246
原创 pytorch中使用tensorboard绘制Accuracy/Loss曲线(train和test显示在同一幅图中)
tensorboard可以在同一幅图中显示不同的文件,所以将train和test分开存,简要记录代码。from torch.utils.tensorboard import SummaryWriterlog_dir = os.path.join('tensorboard', 'train')train_writer = SummaryWriter(log_dir=log_dir)lo...
2020-04-13 18:01:28 13994
原创 leetcode 365. 水壶问题 (Java数值对判重的方法)
题目两个水壶一共有6种操作:装满x或y清空x或y从一个水壶向另外一个倒水,直到装满或者倒空看完官方题解后发现可以去掉一些情况,总结如下:因为6种操作的结果都至少有一个桶是空的或者满的,所以两个桶不可能同时半满。对一个半满的桶加满或者清空是没有意义的,因为会回到初始状态、一空一满、全满这三种状态。所以水壶只能在空的时候加满,在满的时候清空。BFS要判断是否之前到过这个状态,我...
2020-04-09 17:00:34 185
原创 Java lambda表达式的使用
lambda表达式需要一个函数式接口(有且仅有一个抽象方法,但是可以有多个非抽象方法的接口,可以使用 @FunctionalInterface 修饰)一些例子:JDK8函数式接口Function、Consumer、Predicate、Supplier语法格式1:无参数,无返回值 接口举例:Runnable接口Runnable r = new Runnable{ @Ov...
2020-02-26 16:06:40 80
原创 Kotlin学习笔记
字符串模板模板表达式以$开头,求出它后面的值val s = "abc"println("$s.length is ${s.length}") // 输出“abc.length is 3”${'$'} //使用$本身类型的自动转化fun getStringLength(obj: Any): Int? { // `obj` 在 `&&` 右边自动转换成...
2020-02-25 17:22:12 120
原创 李宏毅 深度学习 笔记
继承学习(Emsemble)Bagging:从原始样本集中使用Bootstraping(有放回)方法随机抽取n个训练样本,共进行k轮抽取,得到k个训练集。(k个训练集之间相互独立,元素可以有重复)对于k个训练集,我们训练k个模型(这k个模型可以根据具体问题而定,比如决策树,knn等)对于分类问题:由投票表决产生分类结果;对于回归问题:由k个模型预测结果的均值作为最后预测结果。(所有模型...
2020-02-24 23:29:44 164
原创 RNN构建语言模型(用前一个单词预测下一个单词)
训练RNN的时候,根据反向传播,梯度会不断相乘,很容易出现梯度消失和梯度爆炸通常的解决方法:对于梯度爆炸:Gradient Clipping:如果梯度太大就把它往下卡对于梯度消失:提出了一些新模型,Long Short-term Memory长短记忆网络、Gated Recurrent Unit(GRU)...
2020-02-22 14:11:55 1584
原创 一些Python的巧妙写法
1. 分类并返回对应类的输出def fizz_buzz_encode(i): if i % 15 == 0: return 3 elif i % 5 == 0: return 2 elif i % 3 == 0: return 1 else: return 0def fizz_buzz_decode(i, prediction): return [...
2020-02-18 23:27:58 196
原创 pytorch学习笔记
1. 加下划线的函数表示结果保存在y里面 eg.y.add_(x)2. numpy和torch之间的转化a = torch.ones(5)b = a.numpy() //a和b共享内存,一起改变a = np.ones(5)b = torch.from_numpy(a)3. add(a, 1, out=a),a=a+1和a.add_(a1)的区别:out=a和a=...
2020-02-18 18:20:33 664 1
原创 Java面试准备——leetcode
1. 用异或^来判断符号相异:boolean different= (a > 0)^ (b>0)2. HashMap在初始化的时候:for (String word : words) { map.put(word, map.getOrDefault(word, 0) + 1);}3. Map的拷贝:map.putAll(map1)4....
2020-02-10 15:57:34 435 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人