
Java
文章平均质量分 78
Java
阿pin
为人民服务
展开
-
Android随笔-VPN判断
Android中判断当前网络是否非VPN /** * 判断当前网络是否为VPN * @param context * @return */ public static boolean hasVPN(Context context) { // 查询网络状态,被动监听网络状态变化 ConnectivityManager cm = (ConnectivityManager) context.getSystemService(C原创 2023-08-05 21:27:22 · 3698 阅读 · 1 评论 -
lifecycleScope Unresolved reference
导入了lifecycle.lifecycleScope,但是在activity中使用lifecycleScope报错出现Unresolved reference找不到引用。Activity中无法使用lifecycleScop,将其改成继承AppCompatActivity()即可解决报错问题。代码中的activity继承Activity。原创 2023-08-05 21:23:17 · 1069 阅读 · 0 评论 -
You need to use a Theme.AppCompat theme (or descendant) with this activity
1、若Activity继承的是AppCompatActivity,可以在添加主题或修改原来的主题为AppCompat主题。2、 若Activity继承AppCompatActivity,条件允许的,可将其改成继承Activity。原创 2023-08-05 21:20:22 · 370 阅读 · 0 评论 -
Android随笔-Serializable和Parcelable
序列化与反序列化是Android中进程间通信常用的手段之一,Serializable和Parcelable都可以实现对象的序列化和反序列化,Serializable是Java提供的,属于统一接口,而Parcelable是Android提供的,属于Android特有的。原创 2022-09-07 10:48:30 · 726 阅读 · 0 评论 -
Android随笔-线程池
ThreadPoolExecutor原创 2022-09-06 08:45:00 · 181 阅读 · 0 评论 -
Java随笔-泛型
泛型,即“参数化类型”,就是将类型由原来的具体类型改成类似于方法中变量参数那样,在使用的时候再传入具体的类型。这种在使用时候将操作的数据类型作为参数,常用在类,方法,接口中。...原创 2022-08-29 19:46:33 · 341 阅读 · 0 评论 -
Java随笔-锁
Java中哪些是线程安全的,哪些是线程不安全的?使用final修饰的就是安全的,Vector是一个线程安全的容器,ArrayList线程不安全的,为了解决线程安全问题,引入了锁机制。锁其实就是自己使用的时候加上锁,不让别人用,用完了再把锁打开,让别人用,保证了一人一坑,解决了线程安全问题,但也带来了一些效率问题。锁的分类有不少,但都是为了在线程之间更高效共享数据,达到高效并发的效果。原创 2022-08-22 19:38:42 · 260 阅读 · 0 评论 -
Java随笔-volatile
volatile在实际开发中使用的并不多,少数单例会使用,但是大多是单例偏向于使用synchronized。volatile是Java提供的一种轻量级的同步机制,相比于synchronized,volatile不会引起上下文的切换和调度,所以更加的轻量。因为轻量,所以使用有所限制。原创 2022-08-21 16:48:22 · 340 阅读 · 0 评论 -
Java随笔-Semaphore
Semaphore(计数信号量)用来控制同时访问特定资源的线程数量,通过协调多线程,确保资源被合理使用。正常的锁在任何时刻都是只允许一个任务访问一项资源,而Semaphore允许多个任务同时访问一项资源。某些程度上和线程池有些相似,可用的数量固定,线程使用完后,剩下的进行排队,当有线程使用完毕后,放回线程池,然后再分配给排队的任务进行使用。...原创 2022-08-18 14:42:52 · 257 阅读 · 0 评论 -
Java随笔-CyclicBarrier
CyclicBarrier和CountDownLatch简直不要太像,CountDownLatch事件只能触发一次,而CyclicBarrier可以多次循环使用,作用是类似的,都是等所有的线程都执行完,再去执行特定的任务,但CyclicBarrier功能比CountDownLatch强大,CyclicBarrier是一组线程相互等待,发生阻塞,直到最后一个线程执行完,再打开屏障,被阻塞的线程继续执行。构造方法,parties:参与等待的线程数,小于1会报IllegalArgumentException。原创 2022-08-18 09:45:32 · 132 阅读 · 0 评论 -
Java随笔-CountDownLatch
CountDownLatch强调是其他任务执行完后,再执行指定任务,其他任务的执行顺序无法保证,当然可以多用几个CountDownLatch,也可以使用join()。join可以保证线程按顺序执行,即使线程睡眠。try {}执行结果是一样的。CountDownLatch中线程睡眠,执行顺序就不一样了。ProductManager 睡眠1000ms。try {} System . out . println("俺是产品经理,俺是提需求的");} }......原创 2022-08-17 13:46:59 · 561 阅读 · 0 评论 -
Java随笔-动态代理
代理是一种基本的设计模式,为目标对象提供另外的访问方式,通过代理访问目标对象可以扩展目标对象的功能,增加额外的功能,也就是不要修改别人的代码,但是可以扩展。生活中中常见的中间人,中间商,代理商,经纪人就是这个模式。代理分为三种:静态代理、动态代理、CGLIB代理.......原创 2022-08-16 20:20:32 · 260 阅读 · 0 评论 -
Java随笔-Socket
套接字,一种独立于协议的网络编程的接口,对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。Socket是应用层与TCP/IP协议族通信的中间软件抽象层,是一组接口。在设计模式中,Socket属于门面模式,因为把TCP/IP协议族隐藏在Socket后面,对于用户来讲,这组接口就是全部了,具体的数据让Socket去组织就可以了。应用程序就包含Socket和解析器即可,不需要针对每一层的协议进行处理,所有的工作都可以交给Socket完成,无需处理细节。应用程序和传输层之间的联系就是Socket。...原创 2022-08-15 16:15:23 · 350 阅读 · 0 评论 -
Java随笔-反射
1,class类,常见的getClass();运行时的类型标识,jvmclass.forName(name).newInstanceFiled,Method,Constructor,域,方法,构造原创 2022-08-12 23:32:22 · 294 阅读 · 0 评论 -
Java随笔-HTTP
超文本传输协议,用于从万维网服务器传输超文本到本地浏览器的传送协议。原创 2022-08-12 14:32:35 · 155 阅读 · 0 评论 -
Java随笔-TCP
因为服务器在收不到客户端的握手结果就会被拖累,当客户端的第一次握手的IP是伪造的,服务器收到后进行第二次握手,IP是伪造的,数据包发送到其他地方,客户端接收不到,所以第二次握手没有结果,没有结果服务器就会被拖累,死机。假设序列号为100,发送10byte的数据,接收方接收后回复确认号110=100+10,表示已收到接收方的数据包,下一个数据包从111开始。第一次告诉对方我没有数据要发送了,第二次对方说我知道了,第三次对方说我也没有数据要发送了,第四次我知道你也没有数据要发送了。.........原创 2022-08-11 19:40:18 · 318 阅读 · 0 评论 -
Java随笔-继承
定义子类覆盖方法子类构造继承层次多态方法调用final强制转换抽象类10.protected1,将公共操作和域放在超类2,不要使用受保护的域3,使用继承实现is-a的关系4,除非所有继承的方法都有意义,否则不要使用继承5,覆盖方法时,不要改变预期的行为6,使用多态,而非类型信息7,不要过多的使用反射..................原创 2022-08-11 16:31:16 · 357 阅读 · 0 评论 -
Java随笔-TCP/IP网络数据传输
TCP提供的是可靠的数据传输服务,是面向连接的,也就是需要数据传输的双方先建立连接,等连接(三次握手)建立成功后再开始传输数据,而且传输过程中采用“带重传的肯定确认”技术来实现传输的可靠性,还会采用“滑动窗口”的方式进行流量控制,发送完后关闭连接(四次挥手)。因为可靠,所以速度要比UDP慢一些,常用于HTTP。IPv4数量有限,所剩不多,所以启用了IPv6,IPv6共128位,16个字节,采用16进制表示,有3种表示方法:冒分十六进制表示法,0位压缩表示法,内嵌IPv4地址表示法。...原创 2022-08-11 10:23:34 · 892 阅读 · 0 评论 -
Java随笔-OSI模型与TCP/IP 模型
利用通信线路将地理上分散的、具有独立功能的计算机系统和通信设备按不同的形式连接起来,以功能完善的网络软件及协议实现资源共享和信息传递的系统。原创 2022-08-10 16:33:44 · 584 阅读 · 0 评论 -
Java随笔-线程生命周期
以JDK16为例,线程有6种状态:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED。原创 2022-04-01 08:56:01 · 186 阅读 · 0 评论 -
Java随笔-堆
1. JVM管理的最大的一块内存。2. 可以被所有线程共享。3. 用于存放几乎所有对象实例和数组,但并不是所有的对象。4. GC回收的主要区域。5. 堆内存大小可以通过-Xmx和-Xms扩展,若堆无法扩展且没有内存分配给对象实例,将会抛出OOM。原创 2022-03-25 08:30:00 · 449 阅读 · 0 评论 -
Java随笔-Callable与FutureTask
通过Callable与FutureTask创建线程原创 2022-03-25 08:00:00 · 257 阅读 · 0 评论 -
Java随笔-引用
Java中引用分为强引用、软引用、弱引用、虚引用,本文探究一下各种引用的使用场景。原创 2022-03-24 08:00:00 · 432 阅读 · 0 评论 -
Java随笔-线程stop与interrupt
Java中关于线程停止提供了stop和interrupt两种方式,本文探究一下两者之间的不同原创 2022-03-23 16:03:37 · 1469 阅读 · 0 评论 -
Java随笔-equals使用习惯
Java中equal用于比较字符串内容。原创 2022-03-20 08:00:00 · 2835 阅读 · 0 评论 -
Java随笔-线程start与run
Java随笔-线程start与run原创 2022-03-19 08:00:00 · 372 阅读 · 0 评论 -
Java随笔-线程创建
java创建方式原创 2022-03-18 08:00:00 · 273 阅读 · 0 评论 -
Java随笔-方法执行与栈帧
方法执行与栈帧原创 2022-03-04 17:27:51 · 675 阅读 · 0 评论 -
Java随笔-栈与栈帧
每一个方法的执行都对应着压栈和出栈原创 2022-03-04 14:58:12 · 1261 阅读 · 0 评论 -
Java随笔-final
final可以用来修饰变量,方法和类。原创 2022-03-03 17:16:33 · 617 阅读 · 0 评论 -
Java随笔-static
static是修饰符,中文常用"静态"表示,用于修饰类的成员方法,成员变量,也可以编写静态代码块。原创 2022-03-02 16:46:37 · 281 阅读 · 0 评论 -
Java随笔-String
字符串是Java开发中使用最多的数据类型之一,但不属于8种基本数据类型,属于对象。了解字符串的使用原理有助于写出高质量的代码。原创 2022-02-28 17:18:04 · 330 阅读 · 0 评论 -
Java随笔-clone
为什么要使用clone为什么要使用clone,直接new一个对象不就好了吗,实际使用中,直接new一个对象也不好,解决不了"新数据"会影响原始数据的问题。原创 2022-02-25 08:14:39 · 393 阅读 · 0 评论 -
Java随笔-char存储
charJava基本数据类型之一,使用’ ’ 括起来,用于表示单个字符。Java中char是两个字节,但是UTF-8一般是1-3个字节,char该如何存储??原创 2022-02-24 15:15:46 · 1199 阅读 · 0 评论 -
Java随笔-String有多长?
作为Java中最常用的数据类型之一,通常认为只要内存够用,String要多长就有多长,其实不然,String的实际长度是有限制。本文根据String的两种使用方式探究String的长度。原创 2022-02-21 11:12:33 · 2994 阅读 · 0 评论 -
Java随笔-希尔排序
希尔排序(Shell’s Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本,同时该算法是冲破O(n2)的第一批算法之一,是非稳定排序算法。该方法因 D.L.Shell 于 1959 年提出而得名。原创 2022-02-16 09:17:05 · 592 阅读 · 0 评论 -
Java随笔-数据类型
Java随笔-数据类型原创 2022-02-15 09:12:23 · 123 阅读 · 0 评论 -
Java随笔-注释
注释是对java源代码的解释说明,可以帮助程序员更好的理解程序。注释信息只保存在java源文件当中,java源文件编译生成的字节码class文件是没有注释的。编写注释是每一个程序员的基本素养,特别是在多人协作的复杂项目中,注释比命重要,宁多不少,尽量做到言简意赅。在Java中,常用的注释分为三种:文档注释、多行注释、单行注释。文档注释/** * @author 阿pin * @date 2022/2/10 * @description He原创 2022-02-10 16:15:33 · 461 阅读 · 0 评论 -
Java随笔-HelloWorld
Java-HelloWorld原创 2022-02-10 12:31:09 · 391 阅读 · 0 评论 -
Android与Flutter混合开发
最近项目中需要在Android原生的应用中添加一些功能,时间紧,任务重,考虑再三,Android与Flutter混合至少能节省30%的开发时间,别无他选。大致跳转如上图所示,在Android页面中有些按钮需要在Android中跳转,而一些按钮则需跳转至Flutter页面,本文简单梳理一下开发流程。1. 创建flutter module在Android项目中点击New,然后New Module。然后在弹出的面板中选择Flutter Module,之后输入Flutter module的Project n.原创 2021-06-07 09:30:21 · 5155 阅读 · 10 评论