![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 57
vpk112
人生如戏,戏如人生
展开
-
Map原理解析02----实现一个类似HashMap的容器类
背景在上一节Map原理解析01----数组与单链表我们了解了数组及单链表。这一节基于数组和单链表我们将要实现一个类似HashMap的Container容器类。该类应该具有以下特点:可以存储(put)KEY-VALUE键值对元素可以根据KEY获取(get)对应的VALUE值支持遍历元素支持获取容器中元素的总数支持从容器中根据KEY删除(remove)元素怀着这五个目的我们进行相应的实现实现import java.io.Serializable;import java.util.*;原创 2021-05-28 15:14:14 · 128 阅读 · 0 评论 -
java实现INT自增主键
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.*;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;import java.util.concurrent.atomic.AtomicInteger;import java.util.stream.Collectors;public class SnowIdUtils原创 2020-06-18 18:47:08 · 1942 阅读 · 0 评论 -
java实现简单时间轮
背景闲来无聊,想去捣鼓一个redis的java内嵌版本,因此定义一个简单时间轮。为后续做准备。思路定义时间轮顶层接口定义抽象接口任务实现时间轮接口代码实现定义时间轮顶层接口public interface IWheel { /** * 添加任务 * @param task 任务对象 * @return taskId 任务编号 */ String addTask(ITask task,Integer delayedTime);原创 2020-05-29 17:38:43 · 2952 阅读 · 2 评论 -
Map原理解析01----数组与单链表
背景说到HashMap,估计作为一个java从业者,大家应该都不陌生。其实早在两年前就有面试官问我HashMap的实现及原理了。当时作为一个从业不到两年的我,很流利的回答了原理是数组加链表。但是何为数组何为链表,HashMap初始化究竟做了那些事情等等,其实我根本讲不清楚讲不明白。这件事其实也一直耿耿于怀我心中。每当有点时间的时候,我都会尝试性的去看看hashmap的源码,但是鉴于实力水平及个人...原创 2020-05-11 01:08:22 · 316 阅读 · 0 评论 -
java对象生命周期
java对象的生命周期由以下几个部分组成1).创建阶段(Created)2).应用阶段(In Use)3).不可见阶段(Invisible)4).不可达阶段(Unreachable)5).收集阶段(Collected)6).终结阶段(Finalized)7).对象空间重分配阶段(De-allocated)创建阶段通过以下的几个步骤来完成对象的创建过程1).为对象分配存储空间;...转载 2020-01-02 13:36:32 · 187 阅读 · 0 评论 -
java压缩图片,加水印操作
java处理图片压缩,或者压缩并加水印package com.hannan.ehu.test.java;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.imageio.IIOImage;import javax.imageio.ImageIO;import javax.imageio.Image...原创 2019-01-07 12:43:02 · 417 阅读 · 0 评论 -
MD5加密工具类
MD5加密原创 2017-11-01 10:10:43 · 212 阅读 · 0 评论 -
使用md5进行加密解密
常规加密原创 2017-11-01 10:08:31 · 1747 阅读 · 0 评论 -
使用java创建http请求
/** * * @param requestUrl 请求的链接 * @param requestMethod 请求方法(GET,POST) * @param outputStr 请求参数(可以使json字符串,也可以是xml) * @return str(字符串,一般是json字符串,也可以是xml字符串) */ public static String httpsRe...原创 2018-05-28 08:00:57 · 1543 阅读 · 0 评论 -
java创建https请求(忽略证书的)
package com.hannan.ehu.test.utils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.net.ssl.*;import java.io.*;import java.net.URL;import java.security.KeyManagementException...原创 2019-01-07 18:06:17 · 3021 阅读 · 2 评论 -
java线程学习---------线程的创建
1.继承Thred类创建多线程package com.hannan.ehu.test.java;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.util.Arrays;import java.util.List;public class HelloThread extends Thread {...原创 2019-01-07 16:40:30 · 93 阅读 · 0 评论 -
java线程学习------线程同步的使用
背景网上已经有很多关于线程同步的案例了,线程同步主要是为了解决资源共享的时候。确保资源使用符合正常的逻辑。最经典的当然属于买票逻辑了。即有固定张数的电影票和固定个数的窗口。让窗口将票准确无误的售完。示例如下:package com.hannan.ehu.test.java;import org.slf4j.Logger;import org.slf4j.LoggerFactory;i...原创 2019-01-07 17:21:19 · 180 阅读 · 0 评论 -
java线程学习-------CountDownLatch对象与join方法
先声明个人观点:推荐使用CountDownLatch背景在某些情况下,我们需要多个线程一起执行,当多个线程的阶段性使命完成以后,在执行主线程的方法。join与CountDownLatch就是在这样的情况下营运而生。举个CountDownLatch的例子 final CountDownLatch latch = new CountDownLatch(5); for (int ...原创 2019-01-07 17:49:55 · 161 阅读 · 0 评论 -
java中的集合框架
1.java集合的概念及作用集合是java中重要的API,它最大的作用是可以用来存储数据。实现了不同的数据结构。2.java集合的结构框架在java集合结构里面,包括Collection、map以及interator三个主要框架,分别对应集合类,键值对(映射)类以及迭代构造器。2.1 Collection类 如图所示,集合类里面既有接口又有类(带IF的表示接口,C的表示类)。集合类主要分为三个支原创 2016-10-24 17:58:44 · 215 阅读 · 0 评论 -
java类与类之间的关系
java语言中类与类的关系有:关联、依赖、继承、实现(实际上也是继承关系)1.关联概念:对象与对象之间的链接。相当于has-a的关系。 表现方式:一个类作为另一个类的属性存在。 举例说明: public class Wheel{} public class Car{ private Wheel wheel; } 2.依赖概念:一个类被另一个类使用。这种关系是临时性的。是us原创 2016-10-17 08:04:00 · 365 阅读 · 0 评论 -
java异常处理
1.异常的概述1.异常的概念:在java程序中,异常是指程序运行的过程中,发生某些意外的事情。比如10/内存溢出等。异常是一个在程序运行执行期间发生的事件,它中断了正在执行的程序的正常交流 2.异常与错误的区别:异常是不正常的事件流,通过处理程序依然可以运行下去。但是错误是无法控制的,程序肯定要中断。2.异常的体系1.异常体系图 此图表示的是异常的体系。从图中我们可以看出异常的父类为Thro原创 2016-10-19 08:12:30 · 250 阅读 · 0 评论 -
如何利用IO拷贝图片
利用IO拷贝图片的代码,实现代码的复用。原创 2016-12-14 08:18:55 · 423 阅读 · 0 评论 -
String与StringBuffer以及StringBuilder的异同点
java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。 1.String String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的,也就可以理解为常量,显然线程安全。 private final char v原创 2017-09-06 07:44:04 · 352 阅读 · 0 评论 -
java8 stream特性
流是Java8引入的全新概念,它用来处理集合中的数据,暂且可以把它理解为一种高级集合。转载 2017-11-05 16:22:12 · 238 阅读 · 0 评论 -
session的使用方法
1、session 和 cookie关于session和cookie详细的内在机制和区别,请另行查阅资料。 可参看:Session机制详解当客户端首次请求session对象时候,服务器会为其创建一个session,并计算出具有唯一性的sessionId,用来标识该session对象,并将被其包含在本次请求响应中返回给客户端,客户端一般采用cookie对其进行保存。在session有效期,转载 2018-02-06 15:38:51 · 2202 阅读 · 0 评论 -
java线程学习-------Lock和synchronized的区别
这边博客是基于原理性的,博客转载自他人。Lock和synchronized有以下几点不同1.Lock和synchronized有以下几点不同:1)Lock是一个接口,而synchronized是Java中的关键字,synchronized是内置的语言实现,synchronized是在JVM层面上实现的,不但可以通过一些监控工具监控synchronized的锁定,而且在代码执行时出现异常,JVM...转载 2019-01-07 17:36:03 · 110 阅读 · 0 评论 -
java面向对象的三大特点理解—— 继承、封装、多态
1.继承:即父类由子类继承。关键字为extends2. 封装:将对象和行为封装起来。3.多态:即父类引用子类的对象特征。原创 2016-10-13 19:14:41 · 412 阅读 · 0 评论