
java 开发
带你装逼带你飞的程序猿
android开发
展开
-
JDBC基本用法与HikariCP连接池
1 JDBCJDBC, Java Database Connecive, Java 数据库连接,是一组专门负责连接并操作数据库的标准,在整个JDBC 中实际上大量的提供的是接口。针对于各个不同的数据库生产商 ,只要想使用JAVA 进行数据库的开发,则对这些标准有所支持。使用JDBC我们可以在java中使用统一的API来访问数据库,进行CURD操作,而不用去关系底层是oracle、DB2、SQL...原创 2019-10-20 18:39:10 · 4533 阅读 · 1 评论 -
优先队列或堆及堆排序介绍
1 堆的基本概念堆也叫优先队列,堆是一种特殊的完全二叉树数据结构,堆分为两种,最大堆,最小堆。 最大堆:根节点大于左右两个子节点的完全二叉树 最小堆:根节点小于左右两个子节点的完全二叉树 堆可以用数组来存储,a[i]处存根节点,a[2*i] a[2*i + 1]分别存左子树的根节点,右子树的根节点。i从1开始所以对于一个堆,结点i,其父结点为a[i/2],左子节点a[2*i],右子节...原创 2018-05-01 12:01:03 · 583 阅读 · 0 评论 -
基本排序算法解析
1 前言排序再算法中是一个很重要又很基础的工作,在对数据的处理过程中,排序往往是第一步。排序算法很多,评价一个排序算法好不好也有很多标准。例如时间复杂度,空间复杂度,稳定性等。今天先来介绍三种比较基础的排序算法,它也是很多高级排序算法的基础。他们是选择排序,冒泡排序,插入排序。选择排序,冒泡排序,插入排序的时间复杂度都是O(n^2),空间复杂度都是O(1)2 选择排序选择排序就是每...原创 2018-04-01 11:14:11 · 3157 阅读 · 0 评论 -
java Socekt简单实践
1 前言在java中,网络通信一般都是用socket的,下面是一个简单的socket通信的例子2 socket通信实战先来看服务端/** * @author Created by qiyei2015 on 2018/1/5. * @version: 1.0 * @email: 1273482124@qq.com * @description: */public clas原创 2018-01-06 16:33:34 · 477 阅读 · 0 评论 -
Android 中使用 java AES 加密
1 前言java开发中,加密还是一个非常常见的需求,常见的加密有对称加密和非对称加密两种,这两种使用的加密解密密钥方式不同。这里暂且不去讨论详细的加密原理。在java中AES加密用的比较多2 AES对称加密AES加密是一种对称加密,即加密和解密的密钥是相同的。在Android中,使用AES的加密如下:/** * @author Created by qiyei2015 on 2017/12/13.原创 2017-12-31 17:57:59 · 1184 阅读 · 0 评论 -
结构型模式--适配器模式
1 前言适配器模式是结构性模式中非常重要的一个模式,使用也比较广泛。因此有必要重点掌握2 适配器模式简介适配器模式主要是将一个的类的接口转换为客户希望的另一个类的接口,Adapter模式使得原本接口不兼容的类可以一起协同工作。 适配器又分为两种,类适配器模式,对象适配器模式 有关这二者的区别,请参考UML类图。定义:将一个的类的接口转换为客户希望的另一个类的接口UML: 可以看到,类适配原创 2017-11-26 21:15:36 · 212 阅读 · 0 评论 -
结构型模式--桥接模式
1 前言桥接模式是结构性模式中非常重要的一个模式,使用也比较广泛。因此有必要重点掌握2 桥接模式简介一般来说,对于抽象,我们是定义接口或者抽象类,而对于实现往往会继承抽象或者接口。但是此种方式不够灵活,继承是侵入式的,使得难以对抽象部分和实现部分进行单独的修改和演进。 另外,继承使得实现部分中有抽象部分,使得实现部分的冗余性比较重。桥接模式就是为解决此问题而生的,桥接模式主要是将抽象部分与实现部分原创 2017-12-03 18:11:36 · 236 阅读 · 0 评论 -
设计模式--创建型模式简介及总结
1 前言创建行模式主要就是将类或者对象的实例化过程抽象起来,分为类的创建型模式,对象的创建型模式2 创建型模式分类创建型模式一般分为两大类,类创建型模式,对象创建型模式 对象创建型模式: 对象创建型模式主要有以下几大类。 抽象工厂:提供创建一组或者一系列相关的或相互依赖对象的接口。 Builder: 将复杂对象的构建与它的表示分离,使得同样的构建过程可以创造不同的表示 原型模式:用原型实例原创 2017-11-18 20:15:56 · 560 阅读 · 1 评论 -
java JVM内存模型与内存溢出异常
1 前言声明:本文参考了深入理解Java虚拟机:JVM高级特性与最佳实践 第2版,可作为该书的一个读书笔记 2 jvm 内存模型java 虚拟机在运行时,内存模型如下: 可以看到,虚拟机栈,本地方法栈,程序计数器是线程私有的,随着线程的消亡而消亡,生命周期与线程相同。而方法区,堆的生命周期是和jvm(一个jvm实例就是一个进程)一起的,随着jvm的消亡而消亡。下面分别介绍各个区域程序计数器 程序原创 2017-07-08 19:57:20 · 512 阅读 · 0 评论 -
java 中单例模式DCL的缺陷及单例的正确写法
1 前言单例模式是我们经常使用的一种模式,一般来说很多资料都建议我们写成如下的模式:/** * Created by qiyei2015 on 2017/5/13. */public class Instance { private String str = ""; private int a = 0; private static Instance ins = null原创 2017-05-13 15:50:00 · 29042 阅读 · 11 评论 -
java多线程(三) 线程的同步与通信
1 线程同步线程的同步是指协同、协助、互相配合,指多个线程协同配合访问临界资源。 为什么要进行线程的同步? 主要是线程可见性问题 java 中如何实现线程同步? 一般说来java线程实现同步有以下几种方式1通过synchronized实现同步 这里主要有两种方式,分别是同步块,与同步方法: 同步块: public void saveMoney2(int money){原创 2017-02-12 16:52:59 · 390 阅读 · 0 评论 -
java多线程(二) 线程的生命周期
java线程的生命周期可以用下图来表示 新建态:指新建一个线程,还没有调用start()方法。例如:Thread a = new Thread(),这个时候a就处于新建状态 就绪态:调用a.start()方法之后,a就处于就绪态。 **运行态:**a调用start()方法之后,并且获得了处理器的调度运行,这个时候a就是运行态了 死亡态:当a的run()方法运行结束后,a就进入了死亡态了 阻原创 2017-02-11 16:24:06 · 276 阅读 · 0 评论 -
java 多线程(一)---创建线程的三种方式Thread,Runnable,Callable与Future
1 前言在java中我们经常会遇到多线程问题,包括线程的互斥,同步,线程通信,线程池等一些问题,也是面试中经常问道的。这里做一个笔记。本篇主要介绍创建线程的三种方式,后续会陆续介绍同步,线程通信等问题2 继承Thread类继承Thread类并复写run()方法,是一种很简单的方式,代码如下:package thread;/** * Created by qiyei2015 on 2017/2/6.原创 2017-02-06 21:32:35 · 2023 阅读 · 0 评论 -
java中如何正确的删除集合中的元素
在java中如果我们需要遍历集合并删除其中的某些元素时,例如对于List来说,我们有三种办法。1. 普通的for循环遍历并删除import java.util.*;public class RemoveSetT>{ /** * 普通的for循环删除 */ public void forRemove(List list, T obj){原创 2016-07-18 21:44:13 · 37016 阅读 · 3 评论