JVM垃圾回收机制

2018-04-22
阅读 3 分钟
2.3k
JVM垃圾回收机制 垃圾回收需要考虑的三件事: 哪些内存需要回收; 什么时候回收; 如何回收; 为什么要学习GC呢?当需要排查各种内存溢出。内存泄漏的问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。 判断对象是否需要被回收的算法 1. 引用计数法 给对象添加...

类加载机制和双亲委派模型

2018-04-22
阅读 2 分钟
2k
类的加载需要分成7个阶段,分别是:加载、验证、准备、解析、初始化、使用和卸载。一般情况下我们只关注前5个阶段。其中验证、准备和解析又统称为连接阶段。

JVM的内存模型

2018-04-19
阅读 2 分钟
2.3k
Java虚拟机在执行java程序的过程中,会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。

Java实现线程的三种方式和区别

2018-04-14
阅读 4 分钟
4.5k
Java实现线程的三种方式和区别 Java实现线程的三种方式: 继承Thread 实现Runnable接口 实现Callable接口 区别: 第一种方式继承Thread就不能继承其他类了,后面两种可以; 使用后两种方式可以多个线程共享一个target; Callable比Runnable多一个返回值,并且call()方法可以抛出异常; 访问线程名,第一种直接使用this.g...

数据结构之二叉树

2018-04-12
阅读 3 分钟
1.8k
数据结构之二叉树 本文讲解二叉树的基本操作: 查找节点 计算树的高度 清空树 递归遍历:先序遍历、中序遍历、后序遍历 按层遍历 来看一下树的结构: {代码...} 首先,为了方便后面看到效果,先手动初始化一个有4个节点的二叉树: {代码...} 查找节点 {代码...} 计算树的深度 {代码...} 清空树 {代码...} 递归遍历 {代码...

List&Map&Set的操作和遍历

2018-04-07
阅读 5 分钟
3.2k
List&Map&Set的操作和遍历 Java的三大集合即:Set、List、Map。 Set:代表无序、不可重复的集合,常用的有HashSet(哈希表实现)、TreeSet(红黑树实现); List:代表有序、可以重复的集合,比较常用的有ArrayList(数组实现)、LinkedList(链表实现); Map:代表具有映射关系的集合,常用的有HashMap(哈希...

从源码看Java集合之ArrayList

2018-04-06
阅读 4 分钟
1.5k
Java集合之ArrayList - 吃透增删查改 从源码看初始化以及增删查改,学习ArrayList。 先来看下ArrayList定义的几个属性: {代码...} 从这里可以看到ArrayList内部使用数组实现的。 一. 初始化 1. ArrayList() 无参的构造器: {代码...} 可以看到这个构造器初始化了一个空数组。这里有个疑问,就是注释明明说是构造了一个...

Java设计模式概述

2018-04-01
阅读 3 分钟
2.1k
我们在平时编写代码的过程中,会遇到各种各样的问题,细想一下很多问题的解决思路大致一样的,这时候你就可以把解决问题的思路整理清晰,成为一种解决问题的核心模式,以后你就能使用这种模式解决类似的问题,而不必绞尽脑汁寻找最优解决方案。经过多年各路大牛的贡献和实践,形成了一套系统的软件设计模式。

Java实现单例的几种方式

2018-03-30
阅读 8 分钟
1.9k
单例模式指的是在应用整个生命周期内只能存在一个实例。单例模式是一种被广泛使用的设计模式。他有很多好处,能够避免实例对象的重复创建,减少创建实例的系统开销,节省内存。

Java序列化

2018-03-18
阅读 6 分钟
1.3k
Java序列化 1. 什么是序列化? 序列化是将一个对象的状态,各属性的值序列化保存起来,然后在合适的时候通过反序列化获得。 Java的序列化是将一个对象表示成字节序列,该字节序列包括了对象的数据,有关对象的类型信息和存储在对象中的数据类型。 说白了,就是将对象保存起来,就跟保存字符串数据一样,用到的时候再取出...

安装jenkins插件-PublishHTMLreports

2017-11-20
阅读 1 分钟
4.8k
安装jenkins插件-PublishHTMLreports 1.去如下网址下载publish HTML reports插件htmlpublisher.hpi: [链接] 目前最新版本是1.14 2.打开Jekkins配置界面: 系统管理管理插件高级上传插件 选择你刚才下载的插件,点击上传。然后重启Jenkins就生效了。 3. 配置报告页面: 选择一个job点击配置,在最下面增加构建后操作...

手动收藏夹

2016-11-15
阅读 3 分钟
2.5k
leetCode分享:[链接]解决hash冲突的办法:[链接]HashMap原理:[链接]完整的http请求:[链接]一致性哈希算法(数据库缓存的核心,分布式缓存大多基于一致性HASH算法来实现分布式缓存内容命中):[链接]oracle B树查询[链接][链接]mysql实现B树查询[链接]

Linux下设置用户环境变量(以安装tree命令为例)

2016-10-29
阅读 1 分钟
3.3k
场景 环境变量需求 有的时候我们在linux上无法获取root权限,但是有需要使用安装的命令; 或者是我们只需要在特定的用户下特定的命令生效; tree命令需求 有时我们需要查看项目的目录结构,一个一个文件夹的翻特别麻烦,那么有没有一个做法来直观的看到目录结构呢,这时候就需要用到tree命令; 操作 安装tree命令 在网上...

Linux(Ubuntu)下安装tomcat

2016-04-19
阅读 1 分钟
3.4k
本文使用apt-get命令安装tomcat 在shell里面输入命令:sudo apt-get install tomcat7 安装完成后显示: 此时服务器已经启动!在浏览器输入你的服务器ip:8080 本地就是localhost:8080 就会看到如下页面,说明你安装成功: 关闭服务器输入命令:sudo /etc/init.d/tomcat7 stop打开服务器输入命令:sudo /etc/init.d/tomcat...

Linux(Ubuntu)下安装Java

2016-04-19
阅读 1 分钟
2.6k
首先使用使用sudo apt-get install default-jre命令安装jre环境:如果忘了包的名字,可以先打一半然后按两下tab键显示匹配:

Android框架之Volley

2015-09-03
阅读 2 分钟
2.6k
Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载网络上的图片。它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的...

android进行异步更新UI的四种方式

2015-09-03
阅读 4 分钟
13.4k
大家都知道由于性能要求,android要求只能在UI线程中更新UI,要想在其他线程中更新UI,我大致总结了4种方式,欢迎补充纠正: 使用Handler消息传递机制; 使用AsyncTask异步任务; 使用runOnUiThread(action)方法; 使用Handler的post(Runnabel r)方法; 下面分别使用四种方式来更新一个TextView。 1.使用Handler消息传递...

android框架之PullToRefresh下拉刷新

2015-08-31
阅读 2 分钟
4.6k
Github项目地址点我 框架简介 android-PullToRefresh框架使用起来很简单,它支持下拉刷新也支持上拉加载。支持的控件包括: ListView ExpandableListView GridView WebView ScrollView HorizontalScrollView ViewPager 代码实例:先看效果图:XML布局文件中: {代码...} Java文件中声明并使用 {代码...}

Android框架之Android Validation表单验证框架

2015-08-31
阅读 2 分钟
6.9k
这个框架从名字就可以知道是做为表单验证用的,在一般的项目中都会用到表单验证的功能,比如说注册,用户名必须是邮箱或者电话号码。当然我们用正则表达式可以达到同样的效果,但是android Validation框架给我们提供了敏捷开发的途径,它支持的验证主要包括:

android框架之ButterKnife注解式框架

2015-08-28
阅读 3 分钟
4.5k
所谓注解式顾名思义就是利用注解的方式将代码抽象化,每次使用只需要传递key和value值就行了,ButterKnife框架将View定义和点击事件很好的进行了注解式抽象,利用它我们不必使用findViewById和setOnClickListener,极大的简化了我们的代码,ButterKnife还对listView的ViewHolder提供了方便的绑定处理。

Android框架之AsyncHttpClient

2015-08-28
阅读 2 分钟
3k
原文来自[链接] 今天利用AsyncHttpClient框架实现将图片上传到服务器。 步骤和思路很简单主要分为三步: 将图片bitmap进行base64编码; 将编码后的String通过AsyncHttpClient上传给服务器的php; php中将获取的String利用base64解码保存到服务器; 其中android端Java代码如下: {代码...} 服务器端php代码: {代码...} ...

android四大组件小整

2015-08-25
阅读 1 分钟
2.3k
这是android中最重要的一个组件,一个Activity可以理解为一个界面,所有的业务逻辑代码和功能实现代码都会写在这个里面,它负责与用户进行界面交互,正如它的名字“行动”就是说你的app要想行动起来必须要依靠activity。

Java排序算法之——希尔排序

2015-07-31
阅读 2 分钟
4.9k
希尔排序也叫作shell排序或缩小增量排序,据说是一个叫D.L.Shell的人发明出来的,顾取名shell排序。这种排序是基于插入排序思想的,也比较适用于数据量大时。

Android动画之——AnimationDrawable

2015-07-29
阅读 3 分钟
4.1k
Animation代表一个动画,目前Android支持逐帧动画(就是所谓的老电影哪样一张一张放映出来)也支持补间动画(就是通过平移、变化计算出来的动画)。

Java排序算法之——快速排序

2015-07-27
阅读 2 分钟
5.9k
所谓快速排序算法是基于交换排序和递归思想的,它的速度的确如名字所示——快!并且这种一算一般被用作数量级比较大的数据当中,在大数据中有着很重要的地位。