自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(105)
  • 收藏
  • 关注

原创 Ubuntu 出现结构需要清理 (structure needs cleaning)

structure needs cleaning

2023-01-30 19:54:03 2762

原创 Ubuntu 16.04升级内核到20.04

一、首先需要从16.04 → 18.04sudo mv /etc/apt/sources.list ~/sudo mv /etc/apt/sources.list.d/*.list ~/1. 改变源(粘贴下面这一段到终端并运行)cat <<EOF | sudo tee /etc/apt/sources.listdeb http://archive.ubuntu.com/ubuntu/ xenial-backports main universe multiverse restrict

2022-05-17 18:12:46 5785

原创 github拉取代码报:You‘re using an RSA key with SHA-1, which is no longer allowed

参考:https://docs.github.com/cn/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent解决步骤在本地生成ssh key查看各种文档,发现生成ssh key使用的算法是rsa:ssh-keygen -t rsa -C “123123@qq.com”1但是这种方式已经不可用了,生成之后加入到github还是报以上的错误!!!正

2022-04-08 15:20:28 719

转载 自定义View

1. 自定义View基础1.1 分类自定义View的实现方式有以下几种类型定义自定义组合控件多个控件组合成为一个新的控件,方便多处复用继承系统View控件继承自TextView等系统控件,在系统控件的基础功能上进行扩展继承View不复用系统控件逻辑,继承View进行功能定义继承系统ViewGroup继承自LinearLayout等系统控件,在系统控件的基础功能上进行扩展继承ViewViewGroup不复用系统控件逻辑,继承ViewGroup进行功.

2022-03-07 13:59:22 420

原创 理解AOP / IOC /DI

理解Spring的AOP和Ioc/DI就这么简单_浮晓悠羡-优快云博客_aop ioc

2021-10-18 20:03:15 137

转载 Java之什么是JIT (Just In Time)?

JIT概念JIT:Just In Time Compiler,一般翻译为即时编译器,这是是针对解释型语言而言的,而且并非虚拟机必须,是一种优化手段,Java的商用虚拟机HotSpot就有这种技术手段,Java虚拟机标准对JIT的存在没有作出任何规范,所以这是虚拟机实现的自定义优化技术。HotSpot虚拟机的执行引擎在执行Java代码是可以采用【解释执行】和【编译执行】两种方式的,如果采用的是编译执行方式,那么就会使用到JIT,而解释执行就不会使用到JIT,所以,早期说Java是解释型语言,是没有任何问题

2021-08-03 10:46:51 2320

原创 java +““拼接成字符串 和 String.valueOf()的区别

使用 + “” 拼接方式,本质上是先将字符串转换为StringBuffer 后在使用append ()方法,而append()方法也是使用的String.valueOf()使用String.valueOf(),本质上则是使用Object.toString()方法

2021-06-16 16:22:27 579

转载 null.equals引起的空指针

当我们比较两个参数值是否相等的时候,经常用到equals,但是 偶尔我们会忘记判断非空,例如写出这样的代码:这样就会引起空指针,正确的写法是,我们知道java中对equals的定义: 对于任何非空引用值 x,x.equals(null) 都应返回 false。关于null的理解:1.null是任何引用类型的默认值,不严格的说是所有object类型的默认值。这对所有变量都是适用的,如成员变量、局部变量、实例变量、静态变量2.null是任何一个引用类型变量的默认值,在java中你不能使用null引用

2021-06-01 11:27:01 505

转载 Activity和Service的交互方式

Activity向Service通信第一种方式:通过MyBinder方式调用Service方法步骤继承Binder 定义中间人对象BanZhengServicepublic class BanZhengService extends Service { //把我定义的中间人对象返回 @Override public IBinder onBind(Intent intent) { return new MyBinder(); } //办

2021-05-13 10:55:19 2116

原创 面试题积累

Java篇基础1. 深拷贝和浅拷贝;2. String 、StringBuffer和StringBuilder;3. Java 的四大引用方式;4. 面向对象的特性;5. 重写和重载;6. 抽象类和接口;提高1. String 长度有限制吗?是多少?

2021-05-10 10:09:30 166

转载 String长度有限制吗?是多少?

前言话说Java中String是有长度限制的,听到这里很多人不禁要问,String还有长度限制?是的有,而且在JVM编译中还有规范,而且有的家人们在面试的时候也遇到了,本人就遇到过面试的时候问这个的,而且在之前开发的中也真实地遇到过这个String长度限制的场景(将某固定文件转码成Base64的形式用字符串存储,在运行时需要的时候在转回来,当时文件比较大),那这个规范限制到底是怎么样的,咱们话不多说先䁖䁖去。String首先要知道String的长度限制我们就需要知道String是怎么存储字符串的,St

2021-05-10 09:51:50 986

转载 Java 枚举类的基本使用

枚举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类(可以实现接口)。1、常量的使用在JDK1.5之前,我们定义常量都是:public static fianl…。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。package com; public enum Color

2021-04-13 15:02:45 178

原创 精密单点定位技术(PPP)和RTK技术有什么区别

首先用通俗的话来说,RTK是先架设一个基站,基站把自己的误差是多少告诉我,我再用这个误差项去消除自己移动站的误差。而PPP不用我们自己架设基站,已经有一些基础的基站,通过卫星发送的数据,把误差分离处理后告知了卫星,卫星做了误差的消除后再给我们定位信息。以下是一些学术的概念:​ RTK技术(实时动态载波相位差分技术):基准站通过数据链将其观测值和测站坐标信息一起传送给移动站。移动站不仅通过数据链接收来自基准站的数据,还要采集GPS观测数据,并在系统内组成差分观测值进行实时处理,同时给出厘米级定位结果。​

2021-04-09 14:45:26 5354

转载 Linux下的tar压缩解压缩命令详解

tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出下面的参数-f是必须的-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。# tar -cf all.tar *.

2021-04-08 16:15:43 1275

原创 华为JDK镜像地址

https://mirrors.huaweicloud.com/java/jdk/

2021-04-08 16:09:50 4833

转载 多线程并发变量问题

背景​ 在Gnss功耗优化的项目中我们需要给其他模块提供一个接口,即我们Imp类中的功耗信息,但是我们功耗信息会在每次上传之后就进行了删除操作,因此就出现了多线程并发操作变量的情况,至此记录如下;情景再现​ 我模拟了一下项目中会出现的情况代码如下:public static List<Integer> list = new ArrayList(); public static void main(String[] args) { for (int i = 0;

2021-04-01 11:33:18 372

转载 Java多线程并发去调用一个类的静态方法,会有问题吗?

总的结论:java是线程安全的,即对任何方法(包括静态方法)都可以不考虑线程冲突,但有一个前提,就是不能存在全局变量。如果存在全局变量,则需要使用同步机制。如下通过一组对比例子从头讲解:在多线程中使用静态方法会发生什么事?也就是说多线程访问同一个类的static静态方法会发生什么事?是否会发生线程安全问题?public class Test { public static void operation(){ // ... do something }}事实证明只要

2021-04-01 10:00:50 5782

原创 Linux定时删除文件

[root@ebs-46753 ~]# vi /etc/init.d/delete.sh内容:#!/bin/bashdir=/upload/file/images/login/qrcode //要删除文件的文件夹路径files=`ls ${dir}`for file in $filesdoif [ -e ${dir}/${file} ];thenrm -f ${dir}/${file}fidone给予可执行权限 :[root@ebs-46753 ~]# chmod 755 /

2021-03-31 17:18:51 764

原创 一个使用unix domain socket进行IPC的小例子

https://cnodejs.org/topic/5ae1f5da39a81e4548f45741

2021-03-31 13:34:58 264

转载 gradle安装

Gradle是一个主要用于Java项目的通用构建工具。它结合了Ant和Maven的最佳功能。与使用XML进行脚本编写的前辈不同,Gradle使用Groovy,这是一种动态的,面向对象的Java平台编程语言,用于定义项目和构建脚本。在本教程中,我们将向您展示如何在Ubuntu 18.04上安装Gradle。相同的说明适用于Ubuntu 16.04和任何基于Ubuntu的发行版,包括Linux Mint和Elementary OS。前提条件为了能够在Ubuntu系统上安装软件包,您必须以具有sudo权限的

2021-03-25 10:55:14 1000

原创 gradle安装

https://m.linuxidc.com/Linux/2018-10/155112.htm

2021-03-25 10:38:26 143

原创 RecycleView

RecycleView支持多个不同类型布局,他们是怎么缓存,并查找的;回收池中有不同的类型集合(栈),get set typeRecycleView能不能直接调用setTags(),不传递键的方式,如setTags(“字符串”)为什么RecycleView需要用到适配器,对适配器的理解是什么;将UI和控件加载滑动的解耦;RecycleView一屏加载的个数是怎么确定的,他是怎么做到不显示的item缓存机制到内存中。onlayout中确认,在添加过程中,每填充一个item 那他的b.

2021-03-24 18:21:05 230

转载 Handler你知道还有个同步屏障

搬运自郭霖文章:https://mp.weixin.qq.com/s/CNpnS6y2IYobzDa7rAjy1Q前言​ 关于handler的内容,基本每个android开发者都掌握了,网络中的优秀博客也非常多,我之前也写过一篇文章,读者感兴趣可以去看看。​ 这篇文章主要讲Handler中的同步屏障问题,这也是面试的热门问题。很多读者觉得这一块的知识很偏,实战中并没有什么用处,仅仅用来面试,包括笔者。我在Handler机制一文中写到:其实同步屏障对于我们的日常使用的话其实是没有多大用处。因为设置同步屏

2021-03-23 18:41:22 165

转载 关于handler以及它已过时的构造函数handler()

搬运自:https://blog.youkuaiyun.com/BitFu/article/details/110183184 ,仅作个人学习笔记用一.android消息驱动机制Thread、Looper、Handler这三个是android消息驱动机制的核心对象,让我们先分析并了解一下一个线程拥有消息处理能力的过程:class LooperThread extends Thread{ public Handler mHandler; public void run() {

2021-03-22 12:59:26 2696

原创 Java内部类

一、什么是内部类?可以将一个类的定义放在里另一个类的内部,这就是内部类。广义上我们将内部类分为四种:成员内部类、静态内部类、局部(方法)内部类、匿名内部类。/*** 我是一个外部类(外部是相对内部而言)*/public class Outer{ /** * 我是一个内部类 */ class Inner{ //... }}二、为什么要用内部类?使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都

2021-03-19 17:49:53 229

原创 Android系统启动流程

android的启动流程是从底层开始进行的,具体如下所示:Android是基于Linux内核的系统,Android的启动过程主要分为两个阶段,首先是Linux内核的启动,然后是Android框架的启动。可以将Andorid系统的启动流程分为以下五个层进行展开,分别是Loader层,Kernel层,Native层,Framework层,Application层。Loader层1.首先按开机键后,引导芯片将引导程序从ROM中加载到RAM中2.引导程序(Bootloader)的主要作用就是将操作系统映像

2021-03-18 11:18:44 263

原创 JDK1.7和JDK1.8中HashMap为什么是线程不安全的?

https://blog.youkuaiyun.com/swpu_ocean/article/details/88917958总结HashMap的线程不安全主要体现在下面两个方面:在JDK1.7中,当并发执行扩容操作时会造成环形链和数据丢失的情况。JDK1.8中,在并发执行put操作时会发生数据覆盖的情况。...

2021-03-17 09:43:54 286

原创 Android Fragment的四种跳转

一、简介最近做项目涉及到了很多关于Fragment跳转的问题,虽然跳转的方式不多,但还是搞的我的晕头转向,所以写了一篇文章主要介绍有关Fragment的四种跳转方式:1、从同一个Activiy的一个Fragment跳转到另外一个Fragment2、从一个Activity的Fragment跳转到另外一个Activity3、从一个Activity跳转到另外一个Activity的Fragment上4、从一个Activity的Fragment跳转到另外一个Activity的Fragme

2021-03-12 17:26:23 4612

原创 AndroidManifest.xml文件中(uses-library)详解

语法:<uses-libraryandroid:name=“string”android:required=[“true” | “false”] />被包含于中例如:<application ........ ........> <uses-library android:name="。。。。。。。" android:required="true" /></application>说明

2021-03-11 10:35:46 1005

原创 单例模式

双重检查懒加载双重检查懒加载需要控制单例的可见性,多线程情况下可能出现空指针问题双重检查锁模式解决了单例、性能、线程安全问题,但是这种写法同样存在问题:在多线程的情况下,可能会出现空指针问题,出现问题的原因是JVM在实例化对象的时候会进行优化和指令重排序操作。public class DoubleCheckLockMode { private static DoubleCheckLockMode instance; /** * 私有化构造函数 */

2021-03-10 17:09:15 158

原创 DataBinding 和 ViewBinding

https://blog.youkuaiyun.com/deng_hui_long/article/details/112301895

2021-03-10 15:24:33 310

原创 Android疑难杂症

adb install apk时提示“is a persistent app. Persistent apps are not updateable”解决方案:adb install 应用的时候,遇到提示“failed to install……,package……is a persistent app. Persistent apps are not updateable”,这个时候就没办法正常安装新应用;这是由于应用被作为系统应用安装在系统目录下,所以会提示说这个应用是一个持久应用程序,持久应用程

2021-03-10 12:19:27 1338

原创 Android面试

https://www.kancloud.cn/s1657292627/android_ios/621895

2021-03-09 17:19:59 127

原创 Tablayout使用详解

前言Tablayout继承自HorizontalScrollView,用作页面切换指示器,因使用简便功能强大而广泛使用在App中。但有的产品经理偏偏是个磨人的小妖精,真的猜不透啊,今天要这种效果,明天就指着另一款App说做成跟这个一样。对付这种产品经理我们有骨气的程序员该怎么办?怎么办?当然是屈服啊,不然去跳楼让他因内疚改需求?所以,就在各种复杂的情况下打磨,渐渐地就变得圆润。这里,有Tablayout的各种使用场景,拿去指着产品经理说:你要哪个给你哪个。github代码直通车先上效果图:分别为设

2021-03-08 15:32:54 1500

原创 FragmentPagerAdapter与FragmentStateAdapter的区别

FragmentPagerAdapter使用FragmentPagerAdapter 时,Fragment对象会一直存留在内存中,所以当有大量的显示页时,就不适合用FragmentPagerAdapter了,FragmentPagerAdapter 适用于只有少数的page情况,像选项卡。FragmentStatePagerAdapter这个时候你可以考虑使用FragmentStatePagerAdapter ,当使用FragmentStatePagerAdapter 时,如果Fragment不显示,

2021-03-08 14:58:16 953

原创 Viewpager 升级版 - ViewPager2 实战

Viewpager 升级版 - ViewPager2 实战1. 前言Google 在 androidx 组件包里增加了一个新的组件 ViewPager2,目前已经更新了两个 alpha 版本了。那么,和之前的 ViewPager 组件相比,有什么改进呢?查看官方文档,有下面一段话:ViewPager2 replaces ViewPager, addressing most of its predecessor’s pain-points, including right-to-left layout

2021-03-08 14:55:40 532

原创 Android 沉浸式状态栏的实现

​ 一提到沉浸式状态栏,第一个浮现在脑海里的词就是“碎片化”。碎片化是让 Android 开发者很头疼的问题,相信没有哪位开发者会不喜欢“write once, run anywhere”的感觉,碎片化让我们不得不耗费精力去校验代码在各个系统版本、各个机型上是否有效。因此以前我一直把沉浸式状态栏看作一块难啃的骨头,但是该面对的问题迟早还是要面对,所以,不如就此开始吧。沉浸式状态栏的实现方法一:通过设置 Theme 主题设置状态栏透明因为 API21 之后(也就是 android 5.0 之后)的状态栏

2021-03-05 18:08:57 2070

原创 Android 全面屏显示\沉浸式状态栏(黑条问题解决)

前言:之前做项目为了达到全面屏显示,设置了一个theme主题样式,如下: <style name="ImageTranslucentTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!--设置顶部状态栏是否为透明--> <item name="android:windowTranslucentStatus">false</item> <!--

2021-03-05 17:17:43 20899 12

原创 Android Jetpack架构组件之ViewModel入门到精通

前言——这篇主要是梳理一下Jetpack架构组件之一的ViewModel,并结合楼主所学做个总结。面向那些还不认识ViewModel的同学们。看完这篇可以快速了解它,并轻松使用。也想请教前辈们指点文章中的错误或不足的地方。本篇只针对ViewModel,不会拓展额外的知识如MVVM,若想了解更多关于Jetpack组件知识可以看楼主写的Jetpack专栏。一、简介(1)ViewModel是什么——ViewModel 是google推出的Jetpack架构组件之一,设计成以生命周期的方式存储和管理UI相

2021-03-04 18:32:50 360 1

原创 Java 并发

一、使用线程有三种使用线程的方法:实现 Runnable 接口;实现 Callable 接口;继承 Thread 类。实现 Runnable 和 Callable 接口的类只能当做一个可以在线程中运行的任务,不是真正意义上的线程,因此最后还需要通过 Thread 来调用。可以理解为任务是通过线程驱动从而执行的。实现 Runnable 接口需要实现接口中的 run() 方法。public class MyRunnable implements Runnable { @Overrid

2021-03-04 14:39:52 236 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除