自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 统一建模语言(UML)

简介统一建模语言 UML(Unified Modeling Language)可以帮助我们表示软件的结构,不同的模块,类和对象如何相互交互,以及他们之间的关系是什么。uml经常与面向对象的设计结合使用,他具有更广泛的适用范围。UML分类统一建模语言 UML(Unified Modeling Language),又可以静动分为静态视图和动态视图。静态图分为:用例图,类图,对象图,包图,构件图...

2019-10-05 21:22:28 333

原创 微信小程序CryptoJS解析java DES/CBC/PKCS5Padding

文章目录目标js解析库下载地址解决代码java后台端代码小程序 CryptoJS注意!!:详细步骤解决小程序解决:为什么添加上面的代码就可以解密?拓展参考目标java端采用DES/CBC/PKCS5Padding 加密,前端,小程序 js,如何进行加解密。js解析库下载地址原版下载地址二次开发版本我用的是二次开发版本.解决代码先给结果!如下代码是核心代码,如果看不懂,可以继续往下看...

2019-09-25 02:33:35 7133 3

原创 java核心技术36讲笔记 第20讲 并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别?

并发包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什么区别?Concurrent类型基于lock-free,在常见的多线程访问场景,一般可以提供较高吞吐量。而LinkedBlockingQueue内部则是基于锁,并提供了BlockingQueue的等待性方法。不知道你有没有注意到, java.util.concurrent包提供的容器(Queu...

2019-09-21 12:21:51 440

原创 第19讲 Java并发包提供了哪些并发工具类?

Java并发包提供了哪些并发工具类?我们通常所说的并发包也就是java.util.concurrent及其子包,集中了Java并发的各种基础工具类,具体主要包括几个方面:提供了比synchronized更加高级的各种同步结构,包括CountDownLatch、 CyclicBarrier、 Semaphore等,可以实现更加丰富的多线程操作,比如利用Semaphore作为资源控制器,限制同...

2019-08-24 01:08:07 371

原创 第18讲 什么情况下Java程序会产生死锁 如何定位、修复

图片右键另存为查看详细。什么情况下Java程序会产生死锁?如何定位、修复?死锁是一种特定的程序状态,在实体之间,由于循环依赖导致彼此一直处于等待之中,没有任何个体可以继续前进。死锁不仅仅是在线程之间会发生,存在资源独占的进程之间同样也可能出现死锁。通常来说,我们大多是聚焦在多线程场景中的死锁,指两个或多个线程之间,由于互相持有对方需要的锁,而永久处于阻塞的状态。我们可以通过jstack或者j...

2019-07-21 02:45:01 261

原创 Shell快速学习

文章整体内容本篇文章只是快速学习了一些语法,如果更深入推荐2个比较权威的书籍《Linux命令行与shell脚本大全》《Linux shell脚本攻略》百度网盘链接:https://pan.baidu.com/s/1SzXqhWRceC9aSyRMy1soOA提取码:d23wHello World新建一个demo.shvim demo.sh输入并且加入权限chmod 7...

2019-07-14 02:24:47 327

原创 Android PathMeasure详细解读

概念路径测量,一个用来测量Path的工具类常用API常用API如Path长度测量,Path跳转,Path片段获取、构造方法PathMeasure()PathMeasure(Path path, boolean forceClosed)forceClosedPath决定是否需要闭合基本代码public class PathMeasureView exte...

2019-07-11 01:59:33 777

原创 第17讲 一个线程两次调用sart()方法会出现什么情况

一个线程两次调用start()方法会出现什么情况?谈谈线程的生命周期和状态转移。java线程不允许启动两次。会抛出异常。多次调用start被认为是编程错误java5之后的线程生命周期:新建(new)就绪(Runnable)运行 (Running)阻塞 (blocking)等待monitor lock。等待(waiting) Tread.join()方法会使线程等待。结束(Term...

2019-07-05 20:03:18 900

原创 第16讲 synchronized底层如何实现 什么是锁的升级降级

第16讲 | synchronized底层如何实现?什么是锁的升级、降级?synchronized代码块是由一对儿monitorenter/monitorexit指令实现的, Monitor对象是同步的基本实现单元。Java 6之前, Monitor的实现完全是依靠操作系统内部的互斥锁,因为需要进行用户态到内核态的切换,所以同步操作是一个无差别的重量级操作.现代的(Oracle) JDK中,...

2019-07-05 19:13:11 264

原创 Android View的绘制流程

View的绘制流程源码分析:1.绘制入口ActivityThread.handleResumeActivity -->WindowManagerImpl.addView(decorView,layoutParams) -->WindowManagerGlobal.addView()2.绘制类以及方法ViewRootImpl.setView(decorView...

2019-06-17 02:51:29 416

原创 快速学习Flutter

flutter官网快速学习flutter,首先需要知道flutter官网:https://flutter.dev/同时还有翻译版的flutter 中文网https://flutter.dev/flutter基本知识由dart语言编写的跨平台UI框架。Flutter 的特性跨平台高性能丰富的 UI 组件学习成本低开发效率高flutter windows环境搭建flut...

2019-06-04 23:18:58 4814 1

原创 第15讲 synchronized和ReentrantLock有什么区别呢

synchronized和ReentrantLock有什么区别?有人说synchronized最慢,这话靠谱吗?synchronized是Java内建的同步机制,所以也有人称其为Intrinsic Locking,它提供了互斥的语义和可见性,当一个线程已经获取当前锁时,其他试图获取的线程只能等待或者阻塞在那里。ReentrantLock通常翻译为再入锁,是Java 5提供的锁实现,它的语...

2019-06-03 00:47:32 345

原创 java中的锁

总结自不可不说的Java“锁”事

2019-05-08 08:04:48 138

原创 第14讲 谈谈你知道的设计模式

谈谈你知道的设计模式?请手动实现单例模式, Spring等框架中使用了哪些模式?大致按照模式的应用目标分类,设计模式可以分为创建型模式、结构型模式和行为型模式。创建型模式,是对对象创建过程的各种问题和解决方案的总结,包括各种工厂模式(Factory、 Abstract Factory)、单例模式(Singleton)、构建器模式(Builder)、原型模式(ProtoType)。结构型模...

2019-04-27 10:12:33 210

原创 第13讲 谈谈接口和抽象类有什么区别

谈谈接口和抽象类有什么区别?接口vs抽象类vs类支持多重继承:接口支持;抽象类不支持;类不支持;支持抽象函数:接口语义上支持;抽象类支持;类不支持;允许函数实现:接口不允许;抽象类支持;类允许;允许实例化:接口不允许;抽象类不允许;类允许;允许部分函数实现:接口不允许;抽象类允许;类不允许定义的内容:接口中只能包括public函数以及public static fnal常量;抽象类...

2019-03-21 00:48:24 225

原创 第10讲 | 如何保证集合是线程安全的? ConcurrentHashMap如何实现高效地线程安全?

如何保证容器是线程安全的? ConcurrentHashMap如何实现高效地线程安全?Java提供了不同层面的线程安全支持。在传统集合框架内部,除了Hashtable等同步容器,还提供了所谓的同步包装器(Synchronized Wrapper),我们可以调用Collections工具类提供的包装方法,来获取一个同步的包装容器(如Collections.synchronizedMap),但是它们...

2019-03-02 17:07:54 405

原创 第9讲 对比Hashtable、 HashMap、 TreeMap有什么不同?

对比Hashtable、 HashMap、 TreeMap有什么不同? 谈谈你对HashMap的掌握。Hashtable、 HashMap、 TreeMap都是最常见的一些Map实现,是以键值对的形式存储和操作数据的容器类型。Hashtable是早期Java类库提供的一个哈希表实现,本身是同步的,不支持null键和值,由于同步导致的性能开销,所以已经很少被推荐使用。HashMap是应用更...

2019-02-18 20:27:27 573

原创 第8讲 对比Vector、 ArrayLis、 LinkedList有何区别?

对比Vector、 ArrayList、 LinkedList有何区别?这三者都是实现集合框架中的ListVector是Java早期提供的线程安全的动态数组,如果不需要线程安全,并不建议选择,毕竟同步是有额外开销的。 Vector内部是使用对象数组来保存数据,可以根据需要自动的增加容量,当数组已满时,会创建新的数组,并拷贝原有数组数据。ArrayList是应用更加广泛的动态数组实现,它本身...

2019-02-14 22:56:08 238

原创 第7讲 int和Integer有什么区别?

int和Integer有什么区别?谈谈Integer的值缓存范围int是我们常说的整形数字,是Java的8个原始数据类型(Primitive Types, boolean、 byte 、 short、 char、 int、 float、 double、 long)之一。 Java语言虽然号称一切都是对象,但原始数据类型是例外。Integer是int对应的包装类,它有一个int类型的字段存...

2019-02-14 21:33:25 231

原创 第6讲 | 谈谈Java反射机制,动态代理是基于什么原理?

谈谈Java反射机制,动态代理是基于什么原理?反射机制是Java语言提供的一种基础功能,赋予程序在运行时自省(introspect,官方用语)的能力。通过反射我们可以直接操作类或者对象,比如获取某个对象的类定义,获取类声明的属性和方法,调用方法或者构造对象,甚至可以运行时修改类定义。动态代理是一种方便运行时动态构建代理、动态处理代理方法调用的机制,很多场景都是利用类似机制做到的,比如用来...

2019-02-13 00:04:40 381

原创 第5讲 String、 StringBufer、 StringBuilder有什么区别?

理解Java的字符串, String、 StringBufer、 StringBuilder有什么区别?String是Java语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑。它是典型的Immutable类,被声明成为fnal class,所有属性也都是fnal的。也由于它的不可变性,类似拼接、裁剪字符串等动作,都会产生新的String对象。由于字符串操作的普遍性,所以相关操作的效...

2019-02-12 23:20:25 378

原创 第4讲 强引用、软引用、弱引用、幻象引用有什么区别?

强引用、软引用、弱引用、幻象引用有什么区别?具体使用场景是什么?不同的引用类型,主要体现的是对象不同的可达性(reachable)状态和对垃圾收集的影响。所谓强引用(“Strong” Reference),就是我们最常见的普通对象引用,只要还有强引用指向一个对象,就能表明对象还“活着”,垃圾收集器不会碰这种对象。对于一个普通的对象,如果没有其他的引用关系,只要超过了引用的作用域或者显式地...

2019-02-12 23:03:56 342

原创 第3讲 | 谈谈final、 fnally、 fnalize有什么不同?

第3讲 | 谈谈fnal、 fnally、 fnalize有什么不同?final可以用来修饰类、方法、变量,分别有不同的意义,final修饰的class代表不可以继承扩展,final的变量是不可以修改的,final的方法也是不可以重写的(override)。fnally则是Java保证重点代码一定要被执行的一种机制。我们可以使用try-fnally或者try-catch-fnal...

2019-02-12 21:18:29 579

原创 第2讲 Exception和Error有什么区别?

Exception和Error的区别Exception和Error都是继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。Exception和Error体现了Java平台设计者对不同异常情况的分类。Exception是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。...

2019-02-12 21:16:24 335

原创 第1讲 | 谈谈你对Java平台的理解?

谈谈你对Java平台的理解? “Java是解释执行”,这句话正确吗?Java本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“书写一次,到处运行”(Write once, run anywhere),能够非常容易地获得跨平台能力;另外就是垃圾收集(GC, Garbage Collection), Java通过垃圾收集器(Garbage Collector)回收分配内存,大部分情况...

2019-02-01 08:39:16 508

原创 蓝牙配对笔记

显示列表packages/apps/Settings/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.javaDeviceListPreferenceFragment初始化操作 @Override public void onCreate(Bundle savedInstanceState) {...

2019-01-12 15:11:44 584

原创 五免提配置文件(HFP)

免提配置文件 (HFP) 介绍了网关设备如何支持免提设备拨打和接听电话作用将手机与车载套件相连,完成拨打和接听电话手机与无线耳机相连,完成拨打和接听电话HFP协议栈Jni下面调用 Bt协议栈。初始化hfp初始化的时候,上层通过调用Jni接口 到达协议栈蓝牙接口(Btif):sBlueToothHfpInterface->init() 调用Btif init() 发送B...

2019-01-12 15:08:51 853

原创 蓝牙配置文件:PBAP组件

组件功能活动处理用户的鉴权请求和连接请求;管理 PBAP 配置文件的连接和鉴权对话框服务囊括了与 OBEX 数据包及蓝牙 RFCOMM 套接字进行交互的 PBAP 后端;在收到盘问式鉴权或访问请求行为时通知活动组件接收器指示蓝牙状态变化的广播接收器(各行为前的编号表示行为发生的顺序);专用于监控蓝牙状态变化,以停止或启动服务组件...

2019-01-12 14:41:18 677

原创 九蓝牙配置文件

介绍为了使用蓝牙无线技术,设备必须能够翻译特定蓝牙配置文件。配置文件定义了可能的应用。蓝牙配置文件表达了一般行为,蓝牙设备可以通过这些行为与其它设备进行通信。蓝牙技术定义了广泛的配置文件,描述了许多不同类型的使用案例。按照蓝牙规格中提供的指导,开发商可以创建应用程序以与其它符合蓝牙规格的设备协同工作。IDprofile英文全称中文全称用例1OBEXObject E...

2019-01-12 14:13:13 355

原创 五蓝牙搜索

蓝牙搜索我们从settings中来分析蓝牙搜索操作。//android8.0\packages\apps\Settings\src\com\android\settings\bluetooth\BluetoothSettings.java @Override public boolean onOptionsItemSelected(MenuItem item) { ...

2019-01-12 14:12:47 710

原创 蓝牙开关

BluetoothSettings设置 选项中 蓝牙开关的按钮。在settings代码中。代码路径(packages\apps\Settings\src\com\android\settings\bluetooth\)BluetoothSettings//android8.0\packages\apps\Settings\src\com\android\settings\bluetooth...

2019-01-12 14:12:20 782

原创 四 bluetooth api基本使用

创建蓝牙连接所需的类和接口对于上层app来说,调用相应接口就可以完成需求。常用步骤有:设置蓝牙查找局部区域内的配对设备或可用设备、连接设备以及在设备之间传输数据。使用配置文件BluetoothAdapter表示本地蓝牙适配器(蓝牙无线装置)。 BluetoothAdapter 是所有蓝牙交互的入口点。 利用它可以发现其他蓝牙设备,查询绑定(配对)设备的列表,使用已知的 MA...

2019-01-12 14:11:44 2255

原创 三 安卓平台代码分布

android 7.1applicationpackages/apps/Bluetoothsettings中蓝牙/packages/apps/Settings/src/com/android/settings/bluetoothframeworks/frameworks/base/core/java/android/bluetooth/frameworks/base/packa...

2019-01-12 14:11:12 180

原创 二 Android平台蓝牙架构

蓝牙在 Android 4.3 及更高版本中,Android 蓝牙堆栈可提供实现蓝牙低功耗 (BLE) 的功能。要充分利用 BLE API,请遵循 Android 蓝牙 HCI 要求。具有合格芯片组的 Android 设备可以实现经典蓝牙或同时实现经典蓝牙和 BLE。BLE 不能向后兼容较旧版本的蓝牙芯片组。在 Android 8.0 中,原生蓝牙堆栈完全符合蓝牙 5 的要求。要使用可用的蓝牙...

2019-01-12 14:10:45 2912

原创 一,蓝牙基础知识

蓝牙( Bluetooth® )是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换(使用2.4—2.485GHz的ISM波段的UHF无线电波)。设备类型经典蓝牙双模设备支持经典蓝牙,低功耗蓝牙单模设备只支持低功耗蓝牙蓝牙4.0蓝牙核心规范版本 4.0 LE( 低功耗)针对尽可能最低的功耗进行了优化。蓝牙 4.0 LE 假设外围设备以一枚钮扣电池作...

2019-01-12 14:09:31 1179

原创 fastmmi(ffbm)

下图为fastmmi启动流程分析。

2018-07-24 21:56:02 1679

原创 java并发编程实战笔记:避免活跃性危险

活跃度失败是一个严重的问题。因为除了短时间的终止应用程序,没有任何机会恢复这种失败。最常见的活跃度失败就是所顺序死锁。应该在设计的时候就避免这个问题。确保多个线程在获得多个锁的时,使用一致的顺序。最好的解决办法就是在程序中使用开放调用。这会大大减少一个线程一次请求多个锁的情况,并且使这样的多重锁请求发生的更加明显。

2017-12-03 20:39:53 387 2

原创 Try increasing heap size with java option '-Xmx<size>Android 7.0工程之预编译jack服务器

stackoverflowTry increasing heap size with java option ‘-Xmxexport JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g"./prebuilts/sdk/tools/jack-admin kill-server./prebuilt

2017-11-30 14:32:07 2755

原创 《java并发编程实战》笔记:取消与关闭

在Java中无法抢占式地停止一个任务的执行,而是通过中断机制实现了一种协作式的方式来取消任务的执行。设置取消标志public class MyTask implements Runnable { private final ArrayList<BigInteger> primes = new ArrayList<BigInteger>(); private volatile bool

2017-11-22 19:15:45 258

原创 java并发编程实战:基础构建模块笔记

同步容器类同步容器类包括两个部分:一个是Vector一个是hashtable。 jdk 1.2引入同步包装类。 Collections.sychronizedxxx在利用迭代器foreach运用interator过程中,可能会抛出ConcurrentModificationException。所以在对于这种同步容器类迭代过程中要进行加锁处理。隐藏迭代器在对同步容器类调用toString,hash

2017-11-22 09:24:26 206

空空如也

空空如也

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

TA关注的人

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