自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HashMap1.8源码分析

HashMap数据结构数组+链表  1.7数组+链表+红黑树 1.8HashMap为什么要用链表?解决hash冲突为什么要用红黑树?(查找接近二分查找)方便查询(时间复杂度低)HashMap的容量为什么要为2的次方数呢?1.hash运算方便(在进行hash运算的时候可以通过位运算来进行,不必进行取模,提高效率)2.在数组在扩容的时候,方便计算新的位置hash函数static final int hash(Object key) { int h; return (key

2020-08-14 23:16:33 200

原创 Java简单计算器(栈实现)

最近在复习数据结构,就用栈实现了一个简单计算器,增加了AWT的图形界面.例:输入一个字符串:3*2+1-2解题思路:定义两个栈,一个用来存放数字,另一个用来存放操作符.遍历字符串,如果是数字,就放入数字栈,如果是操作符,则分两种情况:1.若字符栈为空,则直接入栈2.字符栈不为空,需要比较当前要入栈的字符和字符栈顶的字符的优先级如果前者优先级小于后者, 则需要进行计算(从数字栈取两个值,字符栈取一个值进行计算) ,计算完成之后将结果入数字栈, 再继续判断要入栈的字符和字符栈顶的字符的优先级

2020-08-07 20:23:02 1179 1

原创 集合-LinkedList源码分析

LinkedList是集合框架的一种数据类型.继承关系:public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, (双端队列) Cloneable, java.io.Serializable{数据结构:双向链表实现特点:优点: 增加和删除操作很快,不

2020-08-06 22:21:17 152

原创 集合-ArrayList源码分析

ArrayList分析继承关系:底层数据结构:特点:源码分析:构造方法:添加方法:删除操作:覆盖操作:获取方法清除操作:包含操作:是否为空:ArrayList是Java集合框架中较为常用的一种数据结构.下面从不同层面来介绍它.继承关系:ArrayList继承了AbstractList,实现了List,RandomAccess(随机访问),Cloneable,Serializable接口public class ArrayList<E> extends AbstractList<E&

2020-08-06 16:23:43 183

原创 JVM-类的加载机制

类加载概述类加载时机:类加载过程:加载验证准备解析初始化类的加载方式(整个过程)隐式加载显式加载类加载器:双亲委派机制(安全)概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类加载时机:类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(In

2020-07-25 16:30:30 143

原创 JVM-内存分配策略和垃圾回收策略

目录对什么区域进行垃圾回收?什么情况下回收?四种引用:JVM内存分配策略:1.对象优先在Eden分配2.大对象直接进入老年代3.动态对象年龄判断4.长期存活的对象将进入老年代5.空间分配担保垃圾回收算法:1.标记-清除算法2.复制算法3.标记-整理法4.分代回收算法什么是STW?精确式GC:savepoint :安全点抢先式中断:主动式中断:安全区:垃圾收集器Serial收集器(新生代收集器)ParNew收集器(新生代收集器)Parallel Scavenge收集器(新生代收集器)Serial Old收集器

2020-07-24 20:29:59 452

原创 Java对象在内存中存储结构

目录Java对象存储:(HOTSPOT虚拟机)什么是对象头,具体包括什么Mark Word分析 (64位):Class Pointer (类型指针)array length(数组特有)实例数据(Instance)对其填充(padding)如何获取的元数据通过句柄访问对象(间接)通过Reference指针直接访问对象(直接)对象的基本存储方式:Java对象存储:(HOTSPOT虚拟机)一个Java对象可以分为三部分存储在内存中,分别是:对象头Object Header实例数据Instance对齐填

2020-07-18 22:55:08 1262

原创 设计模式-单例模式

单例模式是一种常见的设计模式,由于有的类我们只希望保留一个对象即可,不需要创建更多的对象,这种情况下就可以使用单例模式.单例模式的特点:1、单例模式只能有一个实例。2、单例类必须创建自己的唯一实例。3、单例类必须向其他对象提供这一实例。如何实现:一. 饿汉模式代码实现public class Single { private static final Single INSTANCE = new Single(); private Single(){ }

2020-07-16 18:28:12 109

原创 MySQL数据库基本语法,数据库设计,事务,多表查询及练习题

Mysql注释:单行注释:show databases;  – (空格) 查询所有数据库show databases;  #查询所有数据库多行注释:show databases; /* 查询所有数据库*/数据库类型:int :整数类型 //age intdouble :小数类型 //score double(5,2)date :日期,只包含年月日,yyyy-MM-dddatetime :日期,包含年月日时分秒,yyyy-MM-dd HH:mm:sstimestamp :时间错

2020-07-15 15:39:41 337

原创 Stream流和函数式编程

Stream流 拼接流式模型生产饮料 放瓶子   洗瓶子  装饮料  封口  装箱java中的Stream并不会存储任何数据,而是按需计算.数据源: 流的来源,可以是集合,数组等.Pipelining:中间的每一步操作都会返回流对象本身,这样的操作可以串联为一个管道,可以对操作进行优化,比如延迟执行和短路.内部迭代:以前的方法都是先有集合,在进行迭代(外部迭代),流可以调用foreach()方法直接遍历.(内部迭代)当使用流的时候,通常包括三个步骤:获取

2020-07-15 14:54:12 314

原创 生产者消费者模型

import java.util.ArrayList;import java.util.HashMap;import java.util.Random;@SuppressWarnings(“all”)/**描述:@Author (fei)@Date $(DATE)*/class Producer1 implements Runnable{private HashM...

2020-07-15 14:44:20 83

原创 (三)Redi缓存配置,持久化,订阅发布,主从复制和缓存相关问题以及解决

注:笔记整理来源 B站UP主狂神说JavaRedis.conf详解启动通过配置文件!单位:1k => 1000 bytes#1kb => 1024 bytes#1m => 1000000 bytes1mb => 10241024 bytes1g => 1000000000 bytes1gb => 10241024*1024 bytes#units are case insensitive so 1GB 1Gb 1gB are all the same.

2020-06-22 16:09:27 420

原创 (二)Redis数据类型,事务和Jedis操作Redis

Redis五大基本类型注:笔记整理来源 B站UP主狂神说Java官方文档:Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets),有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial)索引半径查询。 Redis 内置了 复制(replication),LU

2020-06-22 15:37:29 393

原创 (一)Redis介绍和Linux环境下安装

注:笔记整理来源 B站UP主狂神说Java什么是NoSQL?关系型数据库:列表,行,列 (POI:通过java查询exl表格)非关系型数据库:NoSQL = not only SQL(不仅仅是SQL)泛指非关系型数据库.随着web2.0互联网的诞生,传统的关系型数据库很难对付web2.0,尤其是超大规模的高并发社区.NoSQL在大数据发展的十分迅速,Redis是发展最快的,是当下必须掌握的技术.很多的数据类型用户的个人信息,社交网络,地理位置(数据的存数不需要固定的格式,不需要多余的操作就可以横

2020-06-22 15:02:38 291

原创 Spring IOC,AOP,事务和JDBC Template操作

框架(半成品软件)高度抽取可重用代码的一种,高度的通用性; 多个可重用模块的集合,形成一个某个领域的整体解决方案.Spring:是一个java企业级应用的开源开发框架Spring的好处:1.轻量级2.非侵入式(不依赖Spring中的API,不用知道其方法) 3.容器(可以管理所有的组件(类))框架4.控制反转(IOC:Spring...

2020-02-25 14:40:54 226

原创 Mybatis环境搭建,CRUD,动态sql,缓存,延时加载

什么是框架?他是我们软件开发中的一套解决方案,不同的框架解决不同的问题使用框架的好处:框架封装了很多的细节,使开发者可以使用极简的方法实现功能,大大提高开发效率什么是三层架构?表现层: 用于展示数据业务层: 是处理业务需求持久层: 和数据库进行交互持久层技术解决方案 JDBC技术: Connection ...

2020-02-25 14:09:00 409

原创 SpringMVC简介(常用注解,拦截器,异常处理)

SpringMVC的基本概念什么是MVC是一种基于两种形式,一种是C/S架构,也就是客户端/服务器,另一种是B/S架构,也就是浏览器/服务器. 在JavaEE中,几乎全是基于B/S架构的开发,那么在B/S架构中,系统标准的三层架构包括:表现层,业务层,持久层.什么是SpringMVC?SpringMVC是一种基于java实现的MVC设计模型的请求驱动类型的轻量级WEB框架,为目前最主流...

2020-02-25 13:30:45 251

原创 银行家算法-java

银行家算法(Banker’s Algorithm)是一个避免死锁(Deadlock)的著名算法.1.算法原理操作系统是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。为保证资金的安全,银行家规定:(1) 当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;(即request <= available)(2) 顾客可...

2019-12-22 20:42:01 235

原创 进程与线程

进程:是操作系统资源分配的最小单位 例:IO资源,内存资源线程:是进行资源调度的单位,是实在的一条执行指令Java内存模型线程共享区:方法区 堆区线程私有区: 虚拟机栈 本地方法栈 程序计数器进程与线程的关系:对应关系:一个进程可以对应多个线程健壮性:进程与进程相互隔离,一个进程崩溃不会影响其他进程一个线程崩溃导致整个进程崩溃进程的健壮性要比线程强资源:创建意味着开辟内存空间...

2019-02-14 22:21:15 166

原创 线程池的相关知识点(三大方法,七大参数,四种拒绝策略)

多线程编码方式:class MyTask implements Runnable{ public void run(){}}public class Test{ public static void main(String[] args){ MyTask task = new MyTask(); Thread thread = new Thre...

2019-02-14 22:09:57 230

原创 Java并发-volatile,synchronized关键字,happends-before原则,Lock锁和CAS操作

volatile和synchronized扮演者重要的角色。volatilevolatile是轻量级的synchronized,它保证了共享变量的可见性(当一个线程修改一个共享变量时,另一个线程可以读到这个修改的值)。如果volatile变量修饰符使用的恰当,比synchronize的使用和执行成本更低。synchronizedsynchronized是重量级锁,他不仅保证了可见性,还保证...

2019-02-14 21:40:21 278

原创 JAVA实现赫夫曼树

import java.util.ArrayList;import java.util.Collections;import java.util.LinkedList;import java.util.List;import java.util.Queue; class Node&lt;T&gt; implements Comparable&lt;Node&lt;T&gt;&gt; ...

2018-12-24 13:36:40 244 1

原创 Java寻找迷宫路径

问题:/*用非递归的栈来解决用类来解决迷宫路径的查找问题,寻找一条从左上角迷宫入口到右下角迷宫出口的一条有效路径,0代表可以行走,1代表不能行走,找到,请输入最终的迷宫和路径信息, 找不到,请输出“不存在有效路径"。*/主函数: package main; import java.util.Scanner; import maze.Maze; public class...

2018-12-11 15:34:50 1846

原创 Java IO 流的相关知识

I-O / Input /OutputIO体系:流式 : 字符流,字节流非流式 :File RandomAccessFile字节流,字符流,处理流(是什么,有什么区别)IO中涉及的设计模式 -&gt; 装饰器模式,适配器模式* IO体系 流式 ...

2018-12-11 15:12:36 140

原创 java 学生成绩管理系统

Grade类:用来存储学生的信息import java.io.Serializable;class Grade implements Serializable{ private int id; private String name; private double math; private double english; private double java; private...

2018-12-10 16:27:31 5056 3

原创 Java中数组的几种拷贝方式

1.for循环拷贝数组(深拷贝) int[] array=new int[] {1,2,3,4}; int[] array1=new int[array.length]; for(int i=0;i&lt;array.length;i++) { array1[i]=array[i]; } int[][] array2=new int[][] {{1,3,2},{1,4,5},{4,...

2018-12-10 16:11:25 257

原创 LinkedHashMap介绍(特点,优势,和其他比较)

LinkedHashMap的特点:1.LinkedHashMap继承了HashMap ,实现了Clonable ,serialiable(可序列化) , map接口;public class LinkedHashMap&amp;lt;K,V&amp;gt;extends HashMap&amp;lt;K,V&amp;gt;implements Map&amp;lt;K,V&amp;gt;{}2.提供了AccessOrder参数,用.

2018-11-19 18:59:38 6731

原创 简单麻将功能实现

麻将游戏实现:实现功能点: 实现麻将的准备牌,洗牌,发牌,看牌 (集合知识) 麻将功能需求分析 a:具体规则:1.组装136张麻将,条,筒,万加在一起的数目是108张 东,南,西,北风,红中,发财,白板是28张,总共136张2.将136张牌顺序打乱3.四个玩家参与游戏,四个人交替摸牌,每次4张,先摸3次,之后庄家摸2张(2张之间索引差4),其他人再摸一张,庄家14张,其余人13张牌,剩下的...

2018-11-18 13:24:27 1348

原创 HashMap介绍

HashMap介绍1.key-value键值对形式存储;2.在HashMap中键不能重复,即只能有一个key存在,如果key值相同,value值会被覆盖。3.key值和value值都可以为null。4.数据不能保证一致性。HashMap的属性static final int DEFAULT_INITIAL_CAPACITY = 16;//默认容量static final int M...

2018-11-12 20:47:54 271

原创 HashMap和HashTable的异同点

HashMap和HashTable异同点底层数据: HashMap和HashTable底层数据结构相同,都是以数组加链表形式存储数据。继承关系: HashMap和HashTable都实现了Clonable ,Map,Serializable接口。 但不同的是HashTable继承了Dictionary接口。public class HashMap&lt;K,V&gt;extends Ab...

2018-11-10 14:08:52 246

原创 集合框架图简介

集合框架图板块简介CollectionlistsetQueueHashSetLinkedHashSetTreeSetIteratorLinkIteratorMapHashMapLinkedHashMapHashTableWeakHashMapTreeMapidentityHashmapTreeSetCollectionsArraysCollectionCollection是一个接口,它的存储...

2018-11-10 13:48:59 1367

空空如也

空空如也

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

TA关注的人

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