自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA和Android序列化技术详解

文章目录什么是序列化为什么需要序列化Java的序列化Android的序列化什么是序列化为什么需要序列化Java的序列化Android的序列化高性能rpc 的关键技术之一 就是高效的对象序列化机制。传统java的序列化机制。有两个问题。数据量大,传输效率低。 其他语言无法识别。json 序列化存在占用空间大。性能低下。是因为有很多结构化的东西,各种符号。 但是可读性强。为什么要进行序...

2019-11-11 14:57:15 599

转载 【解惑】剖析float型的内存存储和精度丢失问题

【解惑】剖析float型的内存存储和精度丢失问题问题提出:12.0f-11.9f=0.10000038,"减不尽"为什么?现在我们就详细剖析一下浮点型运算为什么会造成精度丢失?1、小数的二进制表示问题首先我们要搞清楚下面两个问题: (1) 十进制整数如何转化为二进制数 算法很简单。举个例子,11表示成二进制数:...

2019-11-12 21:31:25 330

原创 Cannot download 'https://start.spring.io': Remote host terminated the handshake , response: 200 OK

新建SpringBoot遇到如下错在:解决办法:'https://start.spring.io'改为:'http://start.spring.io'

2019-11-11 16:16:41 10941 1

原创 com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 解决方案

现象:Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 原因:此问题为时区问题,在 JDBC 的连接 url 部分加上 serverTimezone=UTC 即可。解决方案:jdbc.url = jdbc:mysql://localhost...

2019-11-10 15:04:36 650

原创 【mysql】java.sql.SQLException: Unknown system variable 'query_cache_size'解决办法

Idea导入现成的工程发现有如下的异常:14:29:18,334 WARN BasicResourcePool:1911 - com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@6efc582f – Acquisition Attempt Failed!!! Clearing pending acquires. ...

2019-11-10 14:50:53 1304

转载 非常清晰解读Spring@Autowired注解与自动装配

1 配置文件的方法我们编写spring 框架的代码时候。一直遵循是这样一个规则:所有在spring中注入的bean 都建议定义成私有的域变量。并且要配套写上 get 和 set方法。Boss 拥有 Office 和 Car 类型的两个属性:清单 3. Boss.javapackage com.baobaotao;public class Boss {private Car car;...

2019-11-10 11:01:03 183

原创 windows10 navicat for mysql导入SQL文件

文章目录1.新建一个数据库2.导入数据库1.新建一个数据库2.导入数据库2.1、直接把SQL文件(mooc_one)拉到新建的数据库(test)上面2.2、点击开始,完成SQL文件的导入2.3、右击数据库下面的表,选择刷新,就可以看到新生成的表了。3.1、或者右击新建的数据库,选择运行sql文件。3.2、选择SQL文件的路径,点击打开3.3、点击开始,完成SQL文...

2019-11-09 22:03:07 549

原创 ERROR 1064 (42000): You have an error in your SQL syntax;

Mysq 命令 SET PASSWORD FOR ‘root’@‘localhost’ = PASSWORD<‘123456’>;执行错误:ERROR 1064 (42000): You have an error in your SQL syntax;改为:SET PASSWORD FOR ‘root’@‘localhost’ = ‘123456’;...

2019-11-09 21:04:13 132

原创 [mysql]1251-Client does not support authentication protocol requested by server;

文章目录具体问题问题原因:解决方法:结果:具体问题使用navicat110_mysql_cs_x86工具出现以下错误 :1251-Client does not support authentication protocol requested by server; consider upgrading MySQL client问题原因:出现这种情况的原因是:MySQL8 之前的版本中...

2019-11-09 20:59:01 88

转载 Android开发图片开源系列框架

文章目录1、图片加载,缓存,处理2、图片裁剪3、图片选择4、图片转换,压缩,滤镜4、高斯模糊,毛玻璃,图片模糊1、图片加载,缓存,处理框架名称 :Android Universal Image Loader 一个强大的加载,缓存,展示图片的库,已过时Picasso 一个强大的图片下载与缓存的库Fresco 一个用于管理图像和他们使用的内存的库Glide 一个图片加载和缓存的库,使用的A...

2019-11-09 13:57:28 250

原创 [JAVA]深入讲解ThreadLocal变量通常设置为static的原因

文章目录什么是ThreadLocal:Java static:ThreadLocal变量为什么用static修饰什么是ThreadLocal:JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序,ThreadLocal并不是一个Thread,而是Thread的...

2019-11-08 20:52:54 7163 1

原创 vue异步加载组件

路由懒加载的一种写法:vue-router中,require代替import解决vue项目首页加载时间过久的问题const admin = resolve => require(["@/components/home/admin"],resolve) { path: "/login", name: "login", component: ...

2019-11-06 16:07:42 163

原创 Vue语法之computed

1 computed属性的实现原理Vue实例初始化时,给data的每个属性(dataKey)都添加getter和setter方法 计算属性computed初始化时,提供的函数将作为对应属性(computedKey)的getter方法 其中, computedKey: function(){ return this.dataKey+'change' ...

2019-11-06 15:36:58 381

原创 闪拍 -比美-图片知识产权交易-图片展览 产品构思

目标群体:看到喜欢的美景并拍照,并喜欢分享的人产品目标:操作简单,看到美的东西,以最快的操作留下最美的瞬间,通过分享照片,让美传递给那些同样爱美的人,从而让人-照片-人之间形成闭环,正所谓“独乐乐不如众乐乐”。产品情怀:繁杂的世界里,独留一份直接的,单纯的美。产品对标:对标抖音,快手,他们是短视频,我们是优雅的照片,他们低俗,我们是绝对高雅的艺术!商业模式:获取流量-->广告...

2019-11-05 17:26:49 245

原创 Windows10安装git环境

1.下载https://git-scm.com/downloads------windows----64-bit....网络不好的情况下,可以改为taobao的镜像,网址自行百度。2.用淘宝的镜像存在的坑(Host key verification failed)从code.aliyun.com切回github原先的known_hosts里记录的是code.aliyu...

2019-11-05 00:10:37 323

转载 Ntrip通讯协议1.0

Ntrip通讯协议1.01 什么是Ntrip?CORS(Continuously Operating Reference Stations)就是网络基准站,通过网络收发GPS差分数据。用户访问CORS后,不用单独架设GPS基准站,即可实现GPS流动站的差分定位。访问CORS系统,就需要网络通讯协议。NTRIP( Networked Transport of RTCM via Inter

2017-10-18 19:04:17 1252

转载 Android Studio下JNI编程(引入外部或AS自行编译so文件)

1. 引用外部so文件已验证过的引用外部so文件主要有三种方式:1.1  main目录下创建jniLibs目录,so文件按平台存放于子目录下(最简单方式)只需在app/src/main目录下创建jniLibs目录,然后将so文件按平台存放于对应子目录下即可。1.2 将jniLibs重定向到libs目录。(Eclipse项目习惯)将so

2017-09-27 15:13:45 1786

转载 理解 Android Build 系统

前言Android Build 系统是 Android 源码的一部分。关于如何获取 Android 源码,请参照 Android Source 官方网站:http://source.android.com/source/downloading.html。Android Build 系统用来编译 Android 系统,Android SDK 以及相关文档。该系统主要由 Mak

2017-09-13 14:45:08 303

转载 浅谈链式编程及建造者模式

今天谈谈链式编程,和建造者模式,第一部分谈链式编程,第二部分谈建造者模式。在安卓开发中,最早接触链式编程,应该算是AlertDialog类了,后来在github上看到JakeWharton 的picasso图片处理框架。从ViewpageIndicator开始关注JakeWharton ,当时对他的佩服是无比的,觉得他想让我们用什么风格写代码,就能给我们创造出相应的框架,注意,重点是风格哦

2017-09-13 10:52:02 742

转载 Http协议三次握手过程

Http协议三次握手过程  2013-05-23 17:00:28|  分类: http头|字号 订阅TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立

2017-09-11 19:20:10 250

转载 Android事件分发机制——Touch事件

1. 简介    先来看一个表:Touch事件相关方法功能ActivityViewGroupViewpublic boolean dispatchTouchEvent(MotionEvent ev)事件分发YesYesYespublic

2017-09-04 17:41:19 269

转载 java泛型-简单易懂

转自:百度百科泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换

2017-09-02 18:06:46 227

转载 Android Activity生命周期以及Fragment生命周期的区别与分析

Android Fragment生命周期图:Activity生命周期图: 对照图:Fragment生命周期分析:1. 当一个fragment被创建的时候,它会经历以下状态.onAttach()onCreate()onCreateView()onActivityCreated()2. 当这个fragment对用户可见的时候,它会经历以下状态。onS

2017-09-01 23:55:11 246

转载 MVP架构模式详解

一.为什么需要软件设计模式?我们先来定义什么是好的软件架构:软件架构上具有明确的分工,各个模块的功能职责平衡分配,且明确。可测试性,通常良好的软件架构都具备良好的可测试性。良好的易用性,维护成本低。为什么需要模块分工?良好的模块分工,可以大大简化我们对代码的理解难度。虽然通过大量的开发工作,可以训练我们的大脑去分析越来越复杂的逻辑,但是人总有极限,而且简单的逻辑更容易理

2017-09-01 16:47:39 764

转载 Java 类中各成分加载顺序 和 内存中的存放位置

一、什么时候会加载类?使用到类中的内容时加载:有三种情况1.创建对象:new StaticCode();2.使用类中的静态成员:StaticCode.num=9;  StaticCode.show();3.在命令行中运行:Java StaticCodeDemo二、类所有内容加载顺序和内存中的存放位置:利用语句进行分析。1.Person p=new Person("z

2017-08-30 15:20:27 318

转载 Android 非静态内部类导致内存泄漏原因深入剖析

背景上周发现蘑菇街IM-Android代码里面,一些地方代码编写不当,存在内存泄漏的问题,在和疯紫交流的过程中,发现加深了一些理解,所以决定写一下分析思路,相互学习。内存泄漏一个不会被使用的对象,因为另一个正在使用的对象持有该对象的引用,导致它不能正常被回收,而停留在堆内存中。内存泄漏的危害最坏的情况,App可能会因为大量的内存泄漏而导致内存耗尽,引发Cra

2017-08-30 13:53:54 529

转载 谈谈Java中的ThreadLocal

ThreadLocal介绍&跳出误区看看源码线程独享变量?ThreadLocal介绍&跳出误区  ThreadLocal一般称为线程本地变量,它是一种特殊的线程绑定机制,将变量与线程绑定在一起,为每一个线程维护一个独立的变量副本。通过ThreadLocal可以将对象的可见范围限制在同一个线程内。跳出误区  需要重点强调的的是,不要拿ThreadLocal和synchro

2017-08-30 12:10:17 219

转载 UML设计中的箭头详解

UML类图是描述类之间的关系,关系有重复度和形式之分。重复度:单重复度,只存在一对一的关系。多重复度,用列表、vector或其它的数据结构维护一对多,多对多的关系这里再说一下重复度,其实看完了上面的描述之后,我们应该清楚了各个关系间的关系以及具体对应到代码是怎么样的,所谓的重复度,也只不过是上面的扩展,例如A和B有着“1对多”的重复度,那在A中就有一个列表,保存着B

2017-08-29 11:01:26 2048

转载 java 线程的几种状态

java 线程的几种状态 java thread的运行周期中, 有几种状态, 在 java.lang.Thread.State 中有详细定义和说明:NEW 状态是指线程刚创建, 尚未启动RUNNABLE 状态是线程正在正常运行中, 当然可能会有某种耗时计算/IO等待的操作/CPU时间片切换等, 这个状态下发生的等待一般是其他系统资源, 而不是锁, Sleep等

2017-08-28 19:37:43 323

转载 理解Android虚拟机体系结构

1 什么是Dalvik虚拟机  Dalvik是Google公司自己设计用于Android平台的Java虚拟机,它是Android平台的重要组成部分,支持dex格式(Dalvik Executable)的Java应用程序的运行。dex格式是专门为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Google对其进行了特定的优化,使得Dalvik具有高效、简洁、节省资源的特点。从

2017-08-24 10:56:36 389

转载 Android应用开发性能优化完全分析

转自:http://blog.csdn.net/yanbober/article/details/483942011 背景其实有点不想写这篇文章的,但是又想写,有些矛盾。不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结、我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只给出啥啥啥不能用,啥啥啥该咋用等,却很少有较为系统的进行真正性能案例分析

2017-08-23 14:51:01 541

原创 Android Input System分析(四)--应用层

本来在讲应用层的消息传递之前,应该讲一下app framework层的消息处理,但实际上这部分的工作并不多,大部分的消息都是直接传递给APP,由APP来消费用户的操作,这个也是软件设计的本意--以用户为中心。在Phonewindowmanager中只是针对home键、back键、menu键等系统级的按键做了拦截并处理。在开始之前,我们先看个故事,故事不是我编的,网上就有。---------

2017-08-22 15:45:30 496

原创 Android Input System分析(三)--Native

本来想跟大家讲一下设备节点的,后来发现这方面的资料很多,大家可以到网站自行搜索一下就可以了。在linux系统里,万物皆以文件的形式来处理,设备节点其实就是一个个文件,而且这些个文件对用户空间是开放的,而且是对不同的进程访问都是开放的,也就是说用户空间可以对内核空间的设备节点文件进行读写操作,从而到达数据传输的目的。Android大名鼎鼎的Binder其实也是这个原理实现的。好了,我们还是进入到

2017-08-22 11:30:38 744

原创 Android Input System分析(二)--内核部分

由Android Input System分析(一)--基本架构已经基本了解了一轮内核部分的工作原理,这里基本架构不再累述,直接从源码开始。介绍源码的流程如下:这里以触摸屏为例,国内很多手机品牌使用的都是汇鼎、墩泰的tp,下面以ctp_it7250.c为例,TP IC部分的驱动源码这里不做分析,因为不具有太多的逻辑性,基本实现的都是和硬件的通信,不过他们使用的API都是linux标准的接口

2017-08-21 15:27:50 665

原创 Android Input System分析(一)--基本架构

说明:本文中诸多图片均来源于网络,如有冒犯,请谅解。开始之前,我们先从整个android大的架构来俯视一遍input体系,先一览众山小,再对局部刨根问底,如下图:从这张图来看,我们可以看出总共分了三部分,一个是客户进程,一个是系统进程,正常情况下android的客户端和系统进程通信使用的是binder,但这里在消息分发的时候并不是,而是使用的是管道,具体原因在后面再分析。第

2017-08-21 14:59:13 2221

转载 Android开发之如何保证Service不被杀掉

序言最近项目要实现这样一个效果:运行后,要有一个service始终保持在后台运行,不管用户作出什么操作,都要保证service不被kill,这可真是一个难题。参考了现今各种定制版的系统和安全厂商牛虻软件,如何能保证自己的Service不被杀死呢?其实除了常规的手段,我们可以参考一下微信和360,设置-程序-正在运行,可以看到微信是同时开启了两个进程和服务:【有兴趣可

2017-08-21 12:15:41 3177

转载 Android总结篇系列:Activity启动模式(launchMode)

本来想针对Activity中的启动模式写篇文章的,后来网上发现有人已经总结的相当好了,在此直接引用过来,并加上自己的一些理解,在此感谢原作者。文章地址:http://blog.csdn.net/liuhe688/article/details/6754323-----------------------------------------------------------

2017-08-21 10:58:44 264

转载 Android App整体架构设计的思考

本文是对我在知乎一个回答的整理,其中的内容大多是对我平时的阅读和实践的总结,希望对Android的开发者有所帮助。但毕竟是个人的一些思考,难免有疏漏,也欢迎对本文的内容提出建议。1. 架构设计的目的        对程序进行架构设计的原因,归根到底是为了提高生产力。通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合。这样做的好处是使得程序在开发的过程中,开发人员只需要专注

2017-08-21 10:55:44 352

转载 Android中的Apk的加固(加壳)原理解析和实现

一、前言今天又到周末了,憋了好久又要出博客了,今天来介绍一下Android中的如何对Apk进行加固的原理。现阶段。我们知道android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk,结果被人反编译了,那心情真心不舒服。虽然我们混淆,做到native层,但是这都是治标不治本。反编译的技术在更新,那么保护Apk的技术就不能停止。现在网上有很多Apk加固的第三方平台,最有名的应当

2017-08-19 16:27:43 246

转载 ptrace运行原理及使用详解

你想过怎么实现对系统调用的拦截吗?你尝试过通过改变系统调用的参数来愚弄你的系统kernel吗?你想过调试器是如何使运行中的进程暂停并且控制它吗?你可能会开始考虑怎么使用复杂的kernel编程来达到目的,那么,你错了。实际上Linux提供了一种优雅的机制来完成这些:ptrace系统函数。 ptrace提供了一种使父进程得以监视和控制其它进程的方式,它还能够改变子进程中的寄存器和内核映像,因而

2017-08-19 16:15:10 394

空空如也

空空如也

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

TA关注的人

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