
Java
南郭竽
这个作者很懒,什么都没留下…
展开
-
android/Java NoClassDefFoundError 异常的出现及解决
这个异常出现的原因就是没找到对应的类。出现的场景:app-> a.jar -> b.jar :比如 App 里面调用了 a.jar 的东西,然后 a.jar 里面又调用了 b.jar的东西。在 android studio 里面, 都是通过 gradle 的 implemetation ‘xxx’ 的方式引入的。这时候就会发生 NoClassDefFoundError 的异常。(这个问题解决方案就是 在 App里面也去引用一下 b.jar. @ 考虑到编译打包优化的问题,可能会把不使原创 2021-12-23 18:33:56 · 3276 阅读 · 0 评论 -
java 字符串排序
字符串排序需求如下: 给联系人排序, 按照姓名来排序. 要求小写字母排前面,大写字母排后面.看到这个,我脑海里预想的排序结果是这样的[aaa,aab,doc,zz,Apple]也就是说 z 是大于 A 的,在这种需求下.但是,我看到为手机联系人的排序不是这样的,是a > A > b 的这种效果,而不是之前预期的 a < b < .. < z < A < B .. < Z的这种效果.当然,具体要什么效果不重要,重要的怎么去实现.为了装比,我实现原创 2020-05-18 21:55:26 · 2824 阅读 · 0 评论 -
java 两个线程接力跑
假设有这样一个场景,有一个任务有100个步骤。希望用两个线程进行接力完成。也就是第一个步骤是线程1去做,做完了,通知线程2去做第二个任务;线程2做完第二个任务了,再通知线程1去做第三个任务。以此类推,直到完成全部的任务。(没想到有什么实际场景需要这样做~)实现思路是这样的:首先让一个线程先去搞步骤1,搞完了,就阻塞,通知第二个线程第二个线程接到通知就开始搞自己的,搞完了,通知对方,然后阻...原创 2019-12-11 22:25:35 · 633 阅读 · 0 评论 -
我看 kotlin
kotlin 真的出来好久了,谷歌也是一直在不要命的宣传。不过覆盖率应该还是不到100%。我对于kotlin是一直有关注。几乎是谷歌谷歌开始大力宣传的时候,我就开始关注了。那时候已经有博客开始科普这门语言了。不过,我是尝试了几次,最终都放弃了。原因有二:第一,当时工作上用不上;第二:实在不喜欢这门语言。kotlin似乎是一个大杂烩,里面包含很多语言的特性。而且相对复杂。里面的关键字就特别多。...原创 2019-07-18 23:35:03 · 222 阅读 · 0 评论 -
Java ArrayList toArray(T[] a) 解惑
先看一个小的代码片段 ArrayList<Integer> arrayList = new ArrayList<>(); Collections.addAll(arrayList, 11, 21, 31, 41, 51); Integer[] a = new Integer[0]; Integer[] b =...原创 2019-04-16 16:17:02 · 2650 阅读 · 10 评论 -
Java迭代器 Iterator 浅析
Iterator<E>是一个接口,所以具体的实现需要看其中的实现类。下面就挑选其中比较简单的一个实现类来分析一下。java.util.AbstractList.Itr 分析// java.util.AbstractList.Itrprivate class Itr implements Iterator<E> { /** * Inde...原创 2019-04-16 14:59:59 · 775 阅读 · 0 评论 -
Java 注解实战
Java 中提供了注解的功能。涉及到的包有:java.lang.annotation,java.lang.reflect 。也就是说,实际上包含两点:注解和反射。注解q:为什么需要反射?因为仅仅自定义注解的话,几乎没有任何作用,除非是基于第三方框架。而不依赖任何第三方框架的话,就必须使用到反射来解析自定义的注解。(似乎也有其他的方式来解析)这里就使用反射的方式来解析。关于自...原创 2018-12-09 21:34:50 · 834 阅读 · 0 评论 -
java 代理模式
代理模式听起来特别唬人,如果你不知道的话。几个月前,我去面试。面试官出来。(我一看,哇,这人是程序员?吊儿郎当的样子)然后他就开始问我一些问题。让我一直记住的一个问题是:静态代理模式与装饰模式有什么区别?我当然没有回答上来了。我TM根本不知道代理模式要怎么弄,只是知道有这么个东西。以上是前言。不过实话说,代理模式是我一直想了解但是一直没有了解的东西。然后在我脑中就有一个印象:这玩...原创 2018-12-13 23:04:11 · 166 阅读 · 0 评论 -
java 两个线程间隔打印1,2一共100次的骚操作
package com.pycat.sample.print;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantReadWriteLock;/** * Create...原创 2018-06-26 18:07:20 · 1306 阅读 · 0 评论 -
构造点,线结构
任何类型的数据结构都可以构造,只要你能对其进行抽象。辣么,如何构造点结构与线?—–并没有提供太多操作方法—但是可以以此继续扩展—-Java实现:package com.pycat.simple.twoDimension;import javafx.util.Pair;/** * Created by cat on 2018/6/10. * 点 */public cl...原创 2018-06-10 16:21:20 · 1030 阅读 · 0 评论 -
构造有理数~
在编程中,数据类型基本会有数字类型,有的还会细分整数和小数,但是一般不会区分有理数与无理数。辣么,如何打造一个有理数类型呢?什么是有理数类型?首先有理数就是分数。其次,有理数既然是一种数据结构,就有创建和操作的方法。——————— 启发与 sicp ——————-其实实现语言不重要,这里表达的是一种抽象分层的思想。(假装有)java 实现:package com.pycat.s...原创 2018-06-10 16:15:14 · 1095 阅读 · 0 评论 -
正则表达式匹配.avi文件名
一万年没有来这里写东西了,今天分享一下刚刚完成的一个小功能:也就是标题所述的功能咯。【Java 实现】背景是这样子的:我在网上下载了很多视频文件。都是.avi结尾的。而且已经给我排序了,视频文件名称都是 1.xxx.avi 2.xxx.avi ... 9.xxx.avi 10.xxx.avi 11.xxx.avi ... 1024.xxx.avi 播放器是智能的,知道按顺序播放。但原创 2016-05-21 23:30:52 · 3542 阅读 · 0 评论 -
java:List自定义排序
通过实现Comparable<T>接口,重写POJO的compareTo(T other)方法实现排序。 比如:某个List的排序需要根据其中POJO的某个字符串类型字段是否匹配特定字符串,进行降序排列:代码如下:/** * Created by cat on 2017/9/4. */public class LockInfo implements Comparable<LockInfo原创 2017-09-04 12:29:55 · 1003 阅读 · 0 评论 -
java: 线程间通信经典模型“生产者-消费者”模型的实现
安利一个网站:在线文档 jdk 1.6 一篇有参考价值的关于锁对象使用的博文:ReadLock和WriteLock(读写锁)java 对于多线程的控制提供了很多操作对象,方法。比如synchronized关键字,还有Object#wait() & Object#notify() & Object#notifyAll();不过java还提供了一些其他的工具类,比如Lo原创 2018-01-21 17:57:47 · 551 阅读 · 0 评论 -
java: 多线程复制文件
突然想写一个多线程下载的小案例。但是并不知道怎么做,所以想先写一个多线程复制文件的小案例。 搜遍全网,都没有找到一个类似的。不过还是找到一篇有参考价值的博文:jAVA基础 提高文件复制性能之多线程复制文件 以及这篇java多线程复制文件,RandomAccessFile类想起每次面试都会被问起:怎么实现多线程下载?很慌。每次回答都是支支吾吾的。毕竟,我不能直接说,我都是用开源框原创 2018-01-21 01:58:47 · 1442 阅读 · 1 评论 -
Java设计模式之“抽象工厂模式“
抽象工厂模式与工厂方法不同的是,当产品结构较为复杂,有多级产品结构,和多个同级分类的产品的时候,可以通过抽象工厂的方式去解决。所谓抽象工厂,是指将产品抽象,通过工厂去生产产品。一般而言,工厂的结构应该与产品的结构相同,这样才能一一对应。让对应的工厂去生产对应的产品。假设现在有一个二级的产品结构,每个结构都有两种不同种类的产品,那么代码可以是这样: 1.产品抽象类package com.p原创 2016-03-26 13:29:26 · 535 阅读 · 0 评论 -
Java设计模式之“工厂方法模式”
工厂方法模式与简单工厂模式不同的是,简单工厂模式是工厂自己去实现对所有产品的构造的过程。根据不同的指令去生产对应的产品。但是,如果需求有变更,有新的产品需要去生产,或者有旧的产品不必去生产,都需要去修改工厂类的代码。这样就违反了开闭原则。对修改没有关闭。而,工厂方法模式,相比于简单工厂模式,就避免了这一点。首先,抽象出一个工厂类出来,任何生产具体的产品的方法,交给具体的工厂去实现。这样有新的产品需原创 2016-03-25 21:45:19 · 834 阅读 · 0 评论 -
Java设计模式之“简单工厂模式”
简单工厂模式的学习一句话描述,通过调用一个静态工厂方法,获取特定接口的实例对象。具体步骤可以是:构建产品抽象类(1个),构建具体的产品类(多个),构建静态工厂,通过相应的指令,在工厂中实例化对应的具体的产品,完成产品对象的创建。隐藏具体的实现细节。简单工厂模式 1.设计背景: 请使用简单工厂模式设计一个创建不同几何形状,如圆形,方形,三角形实例的原创 2016-03-25 00:54:33 · 1214 阅读 · 0 评论