自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 问答 (1)
  • 收藏
  • 关注

原创 jvm内存深层解析与性能调优

要更好的消化这篇文章,建议先看看https://blog.csdn.net/cdaimadada/article/details/79884414(java内存解析)这篇博文对于一般而言,java内存被划分为堆和栈(上一篇文章就是讲这个的),但是,实际上内存划分比这个复杂得多!概述对于java程序员来说,在虚拟机自动内存管理机制的帮助下,不在需要为每一个new操作去写配对的delete/free代...

2018-05-04 20:25:49 443

转载 java8 lambda表达式详解

JDK1.8之Lambada表达式一https://blog.csdn.net/wzj_110/article/details/80201470

2019-11-27 18:51:47 178

原创 函数式编程

【前序】:在Java8中,内置了四个核心函数接口,它们存在是Lamda表达式出现的前提,Lamda表达式想重写函数式接口中的唯一方法。函数式接口与Lambda表达式之间的关系:lambda表达式相当于是一个行为,传入函数式接口中,进来实现各种操作,即行为参数化它们的接口内只有一个抽象方法,每一个函数式接口都有@FunctionalInterface注解。四种函数式接口分别为:Con...

2019-11-27 18:34:55 191

原创 javaWeb基础知识点

一.post 相比get 有很多优点,为什么现在的HTTP通信中大多数请求还是使用get?https://www.zhihu.com/question/316407691.最大的优势是, GET 的URL可以人肉手输啊。。。你在地址栏打个POST给我看看。本质上面, GET 的所有信息都在URL, 所以很方便的记录下来重复使用。另外一个准则是,可以重复的交互,比如取个数据,跳个页面, ...

2018-07-26 20:52:27 1084

转载 Android手机连接到Tomcat服务器

前提:电脑和手机在同一个网段,比如电脑开wifim手机连接,或者手机电脑连接同一个wifi一:先打开Tomcat打开Tomcat可以打开安装路径下bin目录下的startup。bat文件,也可以直接在开始-所有程序-Apache Tomcat 9.0 Tomcat9下打开,成功后 start按钮为不可选定。或者http://localhost:8080/可以访问,出现即成功访问...

2018-07-18 17:00:40 924

转载 代理模式

原文链接:https://blog.csdn.net/leisure_life/article/details/68491528代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式分为静态代理、动态代理。静态代理是由程序员创建或工具生成代理类的...

2018-07-17 16:32:44 163

转载 java反射

 原文地址:https://blog.csdn.net/sinat_38259539/article/details/71799078概述:java Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期间借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性以及方法。java反射机制提供的功能在运行时判断任意一个对象所属的...

2018-07-17 10:10:05 185

转载 哪些令人捧腹的段子

1、上完厕所正准备走,隔间传来一阵哀怨的声音:“哥们,帮帮我好吗?”我叹了口气:“不带纸就敢蹲坑,你也是蛮拼的!”他尴尬地笑了笑,说:“不是,你能不能帮我去问下这楼的wifi密码,我很努力地尝试过了,真的拉不出来!”2、“运维是怎么介绍自己的工作经历的?” “部署完以后始终没有出现过问题,然后我就被公司辞退了。”3、一个程序猿抱怨说,花了大价钱换了更快的宽带,可等女神回他消息还是要等好久。也是不知...

2018-06-30 17:33:04 1349

转载 android中style和Theme的使用区别

一.Style的使用使用style属性可以很方便的抽取一些属性,不用重复写很多相同的属性。(一)设置属性的集合1.定义<style name="TextViewStyle"> <item name="android:textColor">#000</item> <item name="android:textSize"&

2018-06-27 16:09:40 609

原创 android 自定义View之继承ViewGroup实现流式布局

主要实现效果如下:接下来讲述如何实现:通过自定义ViewGroup实现:1:onMeasure:测量view的宽高--     在重写的onMeasure方法中,会传入2个参数,他们分别代表“宽的测量规格”,“高的测量规格”,如下所示(spec:规格)protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {测量规...

2018-06-21 21:07:28 844

转载 观察者模式

Java设计模式之观察者模式        摘要:观察者模式(ObserverPattern)。用于实时监测某些Object的动态、只要Object一改变、那么他的所有观察者Observer都会知道、之后观察者会根据Object的改变进行下一步操作。这个在SWING编程中是最常见的。那些Listener就是观察者。 一:问题的引出            要实现一个天气预报的功能、当天气的数据发生变...

2018-06-21 10:21:56 164

原创 那些我不知道的android开发技巧之 内容抽取

每个fragment在实现时,都需要实现onCreateView方法,所以这就导致每个fragment在代码部分就会出现相同的情况,下面具体分析首先观看 homeFragment,你会发现这些代码可以说很类似。于是,我们可以抽取这个到BaseFragment中。 下面看这个baseFragment,它是一个抽象类,继承自fragment要实现MeFragment,只需要这样...

2018-06-19 11:43:19 229

原创 android开发篇之自定义View

控件有很多属性,如android:id、android:layout_width、android:layout_height等,但是这些属性都是系统自带的属性。使用attrs.xml文件,可以自己定义属性。看这张要实现的自定义控件,要实现这个效果就必须使用自定义属性,将TextView的功能和圆环的功能绑定在一起!组成一个控件,代码如下所示。首先:在Value文件下定义一个attrs.xml文件&...

2018-06-17 12:07:59 466

转载 ImageView设置background和src的区别

今天开发的时候遇到一个小问题,在给一个ImageView更换图片的时候,我使用的是java的方式更换,使用的方法是setBackgroundResource(),但奇怪的是总是没有效果。 最后查明原因是:我在编写xml文件的时候,为了查看效果,给这个ImageView设置了src,这时候再设置background的时候回发生重叠。 解决方法:将xml中的src删除即可。问题延伸: 一、ImageV...

2018-06-17 09:42:52 461

转载 自定义控件之onDraw()方法使用

第二:认识CanvasCanvas类简单理解就是表示一块画布,可以在上面画我们想画的东西Canvas中的方法很多,Canvas可以绘制的对象有:弧线(arcs) canvas.填充颜色(argb和color)Bitmap圆(circle和oval)点(point)线(line)矩形(Rect)图片(Picture)圆角矩形 (RoundRect)文本(text)顶点(Vertices)路径(pat...

2018-06-15 18:54:44 4126

转载 Activity A 跳转到 Activity B,生命周期的执行过程

今天被问到ActivityA中启动ActivityB,生命周期方法的执行过程,确实在短时间内不好答出来。打开APP,进入ActivityA生命周期如下:ActivityA跳转到ActivityB生命周期如下:ActivityB按back键返回生命周期如下:ActivityA按back键返回生命周期如下:...

2018-06-12 16:24:39 2188

原创 parcelable接口实现

Parcelable接口想要在两个activity之间传递对象,那么这个对象必须序列化,android中序列化一个对象有两种方式,一种是实现Serializable接口,这个非常简单,只需要声明一下就可以了,不痛不痒。但是android中还有一种特有的序列化方法,那就是实现Parcelable接口,使用这种方式来序列化的效率要高于实现Serializable接口。不过Serializable接口实...

2018-06-12 11:28:07 875

原创 重入锁、读写锁基础

概述:在java多线程当中,我们知道可以使用synchronized关键字来实现线程间的同步互斥工作,那么其实还有一个更加优秀的机制去完成这个“同步互斥”工作,他就是Lock对象,我们主要学习两种锁,重入锁(ReentrantLock)和读写锁(ReentrantReadWriteLock)。他们具有比synchronize更为强大的功能,并且有嗅探锁定、多路分支等功能。实现:首先最大的不同:sy...

2018-06-07 19:48:07 325

转载 Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析

今天发一篇"水文",可能很多读者都会表示不理解,不过我想把它作为并发序列文章中不可缺少的一块来介绍。本来以为花不了多少时间的,不过最终还是投入了挺多时间来完成这篇文章的。网上关于 HashMap 和 ConcurrentHashMap 的文章确实不少,不过缺斤少两的文章比较多,所以才想自己也写一篇,把细节说清楚说透,尤其像 Java8 中的 ConcurrentHashMap,大部分文章都说不清楚...

2018-06-07 09:58:02 211

原创 MotionEvent和KeyEvent机制

触屏操作的理解:最基本的操作类型:1.down:手指按下2.move:手指在屏幕上移动3.up:手指从屏幕上离开操作原理:现在流行的触屏手机的屏幕都是电容屏,它是通过人体微小电流和屏幕之间的电流交互来感知触屏的操作。...

2018-06-05 11:03:46 2457

转载 Android图片加载框架最全解析(八),带你全面了解Glide 4的用法

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/78582548本篇将是我们这个Glide系列的最后一篇文章。其实在写这个系列第一篇文章的时候,Glide就推出4.0.0的RC版了。那个时候因为我一直研究的都是Glide 3.7.0版本,再加上RC版本还不太稳定,因此整个系列也都是基于3.7.0版本来写的。而现在,Glide的最新版...

2018-06-03 11:15:53 265

转载 Android图片加载框架最全解析(五),Glide强大的图片变换功能

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/71524668本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每天都有文章更新。大家好,又到了学习Glide的时间了。前段时间由于项目开发紧张,再加上后来又生病了,所以停更了一个月,不过现在终于又可以恢复正常更新了。今天是这个系列的第五篇文章,在前面...

2018-06-03 11:00:20 382

转载 Android图片加载框架最全解析(一),Glide的基本用法

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/53759439现在Android上的图片加载框架非常成熟,从最早的老牌图片加载框架UniversalImageLoader,到后来Google推出的Volley,再到后来的新兴军Glide和Picasso,当然还有Facebook的Fresco。每一个都非常稳定,功能也都十分强大。但...

2018-06-02 15:41:39 277

转载 Context内存泄漏问题

今天看了一篇介绍Context的文章,写的不错,里面有一段内容平时开发时候没有注意到,摘抄如下: 在项目中,我们经常会遇到使用单例模式或者静态static变量,虽然使用静态类或者静态变量很方便,但是也潜在很多的内存泄漏问题。6.1静态资源导致的内存泄漏你可能遇到以下这段代码:public class MyCustomResource { //静态变量drawable private...

2018-05-28 20:26:14 2193

原创 图片的三级缓存基础

一、概述:现在android应用中不可避免的要使用图片,有些图片是可以变化的,需要每次启动时从网络拉取,这种场景在有广告位的应用以及纯图片应用(比如百度美拍)中比较多。现在有一个问题:假如每次启动的时候都从网络拉取图片的话,势必会消耗很多流量。在当前的状况下,对于非wifi用户来说,流量还是很贵的,一个很耗流量的应用,其用户数量级肯定要受到影响。当然,我想,向百度美拍这样的应用,必然也有其内部的图...

2018-05-23 21:02:40 329

转载 Android中Application的总结

前言  最近的开发中经常使用到Application类,它的用处很多,但是网上的资料有很多是旧的或者是介绍不全的,在这里全面总结一下,先介绍Application的所有方法,再介绍它的使用经验。本文基于Android6.0源码,API LEVEL 23。介绍  首先看看官网的介绍:   下面是我对Application类的理解:每个APP都有一个Application实例:如果我们没有继承Appl...

2018-05-20 15:24:00 240

转载 Android JNI编程—JNI基础

最近看到了很多关于热补的开源项目——Depoxed(阿里)、AnFix(阿里)、DynamicAPK(携程)等,它们都用到了JNI编程,并且JNI编程也贯穿了Android系统,学会JNI编程对于我们学习研究Android源码、Android安全以及Android安全加固等都是有所帮助的。但是对于我们这些写Android应用的,大部分时间都是在使用Java编程,很少使用C/C++编程,对于JNI编...

2018-05-19 10:15:35 185

转载 Java设计模式之单例模式

本文继续介绍23种设计模式系列之单例模式。概念:  java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。  单例模式有以下特点:  1、单例类只能有一个实例。  2、单例类必须自己创建自己的唯一实例。  3、单例类必须给所有其他对象提供这一实例。  单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统...

2018-05-18 10:41:22 167

转载 MVP in Android

一、概述对于MVP(Model View Presenter),大多数人都能说出一二:“MVC的演化版本”,“让Model和View完全解耦”等等。本篇博文仅是为了做下记录,提出一些自己的看法,和帮助大家如何针对一个Activity页面去编写针对MVP风格的代码。对于MVP,我的内心有一个问题:为何这个模式出来后,就能被广大的Android的程序员接受呢?问了些程序员,他们对于MVP的普遍的认识是...

2018-05-17 10:29:15 156

原创 红黑树、HashMap

二叉树基础:刚看到堆排序,顺便记录一下关于树的一些基本概念:前言前面介绍的栈、队列都是线性结构(linear structure)。而树是非线性结构(non-linear structure)。因此,树中的元素之间一般不存在类似于线性结构的一对一的关系,更多地表现为多对多的关系。直观地看,它是数据元素(在树中称为节点)按分支关系组织起来的结构。显然,树形结构是比线性结构更复杂的一种数据结构类型。一...

2018-05-10 21:53:21 474

转载 数据结构常考问题总结

数据结构部分:1、数组和链表的区别。(很简单,但是很常考,记得要回答全面)C++语言中可以用数组处理一组数据类型相同的数据,但不允许动态定义数组的大小,即在使用数组之前必须确定数组的大小。而在实际应用中,用户使用数组之前无法确定数组的大小,只能够将数组定义成足够大小,这样数组的空间可能不被使用,从而造成内存空间的浪费。链表是一种常见的数据组织形式,他采用动态分配内存的形式实现。需要时可以用new分...

2018-05-09 16:25:43 1229

原创 接口回调

我们知道java中接口是不可以直接创建实例的,那么问题来了,假如我把一个接口声明为一个变量,那么我执行这个接口中的方法,接口没有实例它该怎么办呢?啊哈,这里自然又改出现java中的另一个特性---“多态”,这时java虚拟机自然会去找其子类,调用其子类中已经重载的该方法,这里就是接口回调的本质!!接口回调主要用于在程序内部进行数据的传输,程序内部数据传输也可以使用静态变量。根据不同的情形使用不同的...

2018-05-09 09:51:29 541

原创 android APP性能优化之内存优化

APP内存优化方法1.数据结构优化2.对象复用3.避免内存泄漏数据结构优化1.频繁地使用字符串拼接不要用“+”的方式,应该使用StringBuilder,“+”的方式会产生无用的中间变量,而且难以删除2.ArrayMap和SparseArray替换HashMapHashMap效率较低,内存占用较高,使用前两者能解决这种问题。HashMap中的一个entry需要额外占用32B3.内存抖动length...

2018-05-07 12:25:15 447

原创 http协议讲解

概述http全称叫做超文本传输协议(HyperTextTransferProtocol),早期是用于传输html格式的数据,后来可以用于传输多种格式的数据。我们把Http协议中的通信两方称作Client和Server(或Host),Client向Server端经过http协议发送一个Request,Server端收到Request后经过一系列的处理返回一个Response。(所以一般的网络通信像o...

2018-05-06 16:53:56 229

原创 android 自定义控件和源码视频讲解

为什么要使用自定义控件?   1.系统的某一个控件,在不同的设备效果不一样当我们想让这个控件在所有设备显示都是一样的风格的时候,就需要自定义控件解决此类问题就需要自定义控件。2.整个软件在不同设备上风格统一    同一个软件在不同设备上可能会出现不同的界面风格,为对所有控件实现统一风格就需要自定义控件例如QQ软件主页面风格大部分都是自定义的3.系统自带的控件,功能有限,增加功能;或者功能太多,减少...

2018-05-06 10:48:38 871

原创 jvm类加载机制与使用MAT分析堆内存

jvm通过类加载器,将硬盘上编译好的class文件加载进jvm中。至于它是否可以运行,则有Execution Engine决定类加载器主要有虚拟机自带的加载器和用户自定义加载器。其中启动类加载器主要加载java中的根类,像Object、Scanner等,这些根类加载时,它们的类加载器为NULL;扩展类加载器主要加载java外部的类(这些外部类存储......jdk\jre\lib\ext中),系统...

2018-05-05 12:43:53 563

转载 hashMap并发导致死循环,使用ConcurrentHashmap解决问题

为何出现死循环简要说明HashMap闭环的详细原因cocurrentHashMap的底层机制 为何出现死循环简要说明  HashMap是非线程安全的,在并发场景中如果不保持足够的同步,就有可能在执行HashMap.get时进入死循环,将CPU的消耗到100%。  HashMap采用链表解决Hash冲突。因为是链表结构,那么就很容易形成闭合的链路,这样在循环的时候只要有线程对这个HashMap进行g...

2018-04-25 20:26:03 1776

转载 java常用IO流操作

博客原址: https://blog.csdn.net/MAGIC_JSS/article/details/514759231.基本概念IO:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中。2.IO流的分类图示:(主要IO流) 3.字节流(1).字节流基类1).InputStreamInputStream:字节输入流基...

2018-04-24 19:52:25 159

原创 Socket网络通信以及InetAddress的使用

首先需要知道:java.net有许多网络通信使用的类,像InetAddress,其主要用途是获取IP、主机名等1,socket通信适用范围比较广泛,Linux、Windows、java都在使用Socket进行网络通信2,两个java程序可以通过一个双向的网络通信连接实现数据交换,这个双向链路的一端称为一个socket3,java.net包中定义的两个类Socket和ServerSo...

2018-04-23 17:33:48 450

原创 java线程同步

锁:首先看下下面的代码:1.多个线程运行时,是交替运行的。22/23行的代码是为了使线程的交替运行表现得更加明显,也可以不要的。2.有两种同步的方法,public synchronized void add(String name){...},不要把这个当成了一种同步方法,正确理解为:执行这个方法的过程当中,当前对象被锁定(貌似很多企业面试的时候就考这个)。3.加锁之前,你会发现程序运行结果是:t...

2018-04-19 21:29:01 198

空空如也

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

TA关注的人

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