![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 80
米奇罗
谢谢各位的关注,我是菜鸡米奇罗,一个会后端的产品经理,成功成为自己最讨厌的人。本人已毕业,转岗产品经理。
展开
-
synchronized原理及其应用(详细且认真)
1. 概述在jdk1.6之前,synchronized是基于底层操作系统的Mutex Lock实现的,每次获取和释放锁都会带来用户态和内核态的切换,从而增加系统的性能开销。在锁竞争激烈的情况下,synchronized同步锁的性能很糟糕。JDK 1.6,Java对synchronized同步锁做了充分的优化,甚至在某些场景下,它的性能已经超越了Lock同步锁我们先来讲解synchronized...原创 2020-04-03 16:41:27 · 2351 阅读 · 0 评论 -
一图胜千言--JVM运行时数据区域
前言本文为《深入理解Java虚拟机(第3版)》学习笔记。思维导图链接:提取码:7wvo原创 2020-03-30 00:26:53 · 235 阅读 · 0 评论 -
一图胜千言--类加载机制
前言本文为《深入理解Java虚拟机(第3版)》学习笔记。思维导图链接:提取码:q4wa原创 2020-03-30 00:17:40 · 203 阅读 · 0 评论 -
一图胜千言--经典垃圾回收器
前言本文为《深入理解Java虚拟机(第3版)》学习笔记。新生代收集器Serial收集器概述:单线程工作的收集器,必须执行STW进行垃圾收集垃圾收集算法复制算法优点简单高效所有收集器里面额外内存消耗最少的ParNew 收集器实质上是Serial收集器的多线程并行版本垃圾收集算法复制算法后续版本ParNew合并入...原创 2020-03-28 16:34:50 · 205 阅读 · 0 评论 -
Java 8 函数式接口
1. 概述函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。提到函数式接口肯定少不了 lambda 表达式,函数式接口可以隐式的转换为 lambda 表达式。我们可以选择向各种各样的方法和构造函数传递 lambda 表达式,包括在 Java 8 之前创建的一些方法和构造函数。因为 lambda 表达式在 Java 中表示为函数...原创 2020-03-01 15:22:28 · 320 阅读 · 0 评论 -
ConcurrentHashMap 原理浅析
1. 前言为什么要使用 ConcurrentHashMap主要基于两个原因:在并发编程中使用 HashMap 可能造成死循环(jdk1.7,jdk1.8 中会造成数据丢失)HashTable 效率非常低下2. ConcurrentHashMap 结构jdk 1.7 和 jdk 1.8 中,ConcurrentHashMap 的结构有着很大的变化,我们依次来讲解。2.1 jdk 1...原创 2019-12-11 22:09:36 · 257 阅读 · 0 评论 -
Java 线程
1. 前言此文为学习笔记,不是很详细,还望理解,有错也希望各位及时指出。详细可以参考《Java 并发编程的艺术》。2. 什么是 Java 多线程一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程:指的是这个程序(一个进程)运行时产生了不止一个线程并行与并发:并行:多个cpu实例或者多台机器同时执行一段处理逻辑,是真正的同时。并...原创 2019-12-06 17:29:46 · 198 阅读 · 0 评论 -
Java内存模型
1. 前言Java 内存模型是根据英文Java Memory Model(JMM)翻译过来的。其实JMM并不像JVM内存结构一样是真实存在的。他只是一个抽象的概念。用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让 Java 程序在各种平台下都能达到一致的并发效果。在 Java 面试中,一般会问 Java 内存模型,本篇将揭开 Java 内存模型神秘的面纱。2. Java 内存模型的抽象结...原创 2019-11-28 23:12:47 · 145 阅读 · 0 评论 -
算法基础(Java)--回溯算法
前言本文还是转载加编写,关于算法的教程网上很多很多,找到这个比较适用的,算法本身就是一种思想,掌握了思想,再根据一些数学知识解决问题。1. 什么是回溯算法?回溯法是一种系统搜索问题解空间的方法。为了实现回溯,需要给问题定义一个解空间。说到底它是一种搜索算法。只是这里的搜索是在一个叫做解空间的地方搜索。而往往所谓的dfs,bfs都是在图或者树这种数据结构上的搜索。根据定义来看,要实现回溯...转载 2019-09-01 22:19:34 · 391 阅读 · 0 评论 -
算法基础(Java)--分治算法
前言此篇博客为转载和修改,来源写在参考资料。分治算法分治,“分而治之”。从字面上理解就是分—治,把大的问题分成小问题,解决一个一个小问题,之后把问题的答案合并起来,就得到大问题的结果。您肯定会在想,这思想这么简单,你不说我也是知道。历史上,秦国通过远交近攻的策略,逐个击破,最后统一六国不也是分治思想的体现吗?以下用一个二叉树的前序遍历为例,对分治思想在代码上的体现进行说明。public ...转载 2019-08-31 15:36:22 · 1113 阅读 · 1 评论 -
动态规划之背包问题
前言此篇博客主要讲常见的三种背包问题,0-1背包,完全背包,多重背包。为了加深理解,每个问题都有leetcode实例。1. 0-1背包问题1.1 题目有N件物品和一个容量为V 的背包。放入第i件物品耗费的空间是Ci,得到 的价值是Wi。求解将哪些物品装入背包可使价值总和最大。1.2 基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不 放。 用子问题定义状态:即F[i...原创 2019-08-31 15:03:40 · 331 阅读 · 0 评论 -
动态规划套路详解
前言前一篇博客总结了动态规划,但是对于我这初学者,还是很多地方不能理解,所以我就在网上找到了一个大神的讲解,确实很棒。转载过来。原文链接在下面参考资料。1. 动态规划套路详解下面通过对斐波那契数列和这道凑零钱问题详解动态规划。如果只想看本题的答案,请直接翻到最后查看。动态规划算法似乎是一种很高深莫测的算法,你会在一些面试或算法书籍的高级技巧部分看到相关内容,什么状态转移方程,重叠子问题,...转载 2019-08-15 22:24:59 · 3301 阅读 · 1 评论 -
算法基础(Java)--贪心算法
title: 算法基础(Java)–贪心算法toc: truedate: 2019-08-09 14:41:53top:tags: [Java,算法]前言前面简单的介绍了八大经典排序算法,此文将要介绍贪心算法,并利用贪心算法解决背包问题。1. 贪心算法的概念所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义...原创 2019-08-10 16:14:11 · 15211 阅读 · 5 评论 -
用idea配置c3p0连接池
文章目录前言1. 准备2. c3p0连接池配置添加依赖创建c3p0-config.xml3. JDBC连接4. 测试5. 小结前言上次利用c3p0封装了数据库操作工具类,但没有用到连接池,在处理大数据量访问的时候那种方法事不好的,最好使用连接池,本文将配置连接池的源码贴出。1. 准备下载的包均是此时最新包c3p0-0.9.5.2包的下载JDBC-Connector8.0驱动包下载...原创 2018-11-01 20:34:13 · 6921 阅读 · 2 评论 -
利用c3p0的QueryRunner类封装数据库操作类
文章目录前言1. 准备2. 封装数据库连接3. 使用QueryRunner类,实现对数据表的 insert delete update4. 小结前言鉴于最近做一个小项目,想要自己封装数据库操作类,但是网上的各种博客资料都是很简单的操作,基本都是写死的,每次调用都要修改MySQL语句,确实很麻烦,通过我自己查阅博客或资料,利用c3p0的QueryRunner类封装数据库操作类,能简单的进行数据库...原创 2018-11-01 20:36:21 · 360 阅读 · 0 评论 -
初学Java之IO
文章目录初学Java之IO1、文件对象2、什么是流3、关闭流的方式4、几种常见流4.1字节流4.2、字符流4.3、缓存流4.4、数据流4.5、对象流5、中文问题6、System.in欢迎收藏米奇罗自己的博客初学Java之IO1、文件对象文件和文件夹都是用File代表创建一个文件对象使用绝对路径或者相对路径创建File对象package file; import java.io....原创 2018-11-01 20:41:41 · 166 阅读 · 0 评论 -
如何解决SpringBoot2.1缺少Java11依赖项问题
文章目录前言1. 准备&注意事项2. 解决方法第一步:删除之前IDEA下载的所有springboot版本第二步:用IDEA新建Spring inteuegh 项目第三步:直接使用jdk11创建项目第四步:创建HelloController.java测试3. 小结&参考资料小结参考资料前言研究了几个星期问题,终于解决了。Java 11从JDK中剔除了很多JEE的东西,但事实并非...原创 2018-11-15 13:26:55 · 5233 阅读 · 2 评论 -
Java之修饰符与抽象类和接口的区别
文章目录一、前言二、修饰符2.1 修饰符作用2.2 类修饰符2.3 变量修饰符2.4 方法修饰符三、 接口与抽象类的区别3.1 抽象类3.2 接口3.3 区别四、 小结&参考资料小结参考资料一、前言对于刚入门的小白来说, 看着这些英语单词就头疼,思索这到底是什么意思,有什么用呢?对于public,private,protected,final,static,abstract等概念总是...原创 2018-11-20 19:40:41 · 1156 阅读 · 0 评论 -
springboot集成MyBatis
文章目录1. 前言2. MyBatis简介2.1 三款框架的ORM对比图2.2 MyBatis作为一款使用广泛的开源软件,它的特点有哪些呢?MyBatis 几个重要的概念3. springboot集成MyBatis导入依赖初始化脚本(创建表)application 配置创建实体类持久层测试4. 通用Mapper与分页插件的集成插件介绍导入依赖application 配置实体类持久层`UserMap...原创 2019-02-10 14:55:55 · 369 阅读 · 0 评论 -
算法基础(Java)--动态规划
前言**动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)**最优化的数学方法。在面试笔试中动态规划也是经常作为考题出现,其中较为简单的 dp 题目我们应该有百分之百的把握顺利解决才可以。1. 基本概念动态规划实际上是一类题目的总称,并不是指某个固定的算法。动态规划的意义就是通过采用递推(或者分而治之)的策略,通过解决大问...原创 2019-08-13 16:33:40 · 542 阅读 · 0 评论 -
算法基础(Java)--八大排序算法
前言为了巩固自己的算法能力,重学算法,一个一个自己写,敲。本文主要介绍Java八大排序经典算法。1. 冒泡排序(BubbleSort)1.1 基本思想两个数比较大小,较大的数下沉,较小的数冒起来。1.2 过程1.3 算法实现 /** * @Description: 冒泡排序,优化版 平均时间复杂度:O(n^2) * @Date: 21:11 2019/8/...原创 2019-08-09 13:59:53 · 357 阅读 · 1 评论 -
初学Java之杂乱笔记(1)
文章目录初学Java之杂乱笔记(1)一、JavaBean规范二、this关键字2.1 什么是this2.2 this的几种用法初学Java之杂乱笔记(1)一、JavaBean规范在封装好一个类以后,应该把对象中的信息隐藏恰里(把类中的字段全部使用使用private修饰起来,其他类不能直接访问)。为了能让外界(其他类)访问本类中私有字段成员,我们专提供getter和setter方法。pu...原创 2018-10-18 00:25:05 · 200 阅读 · 0 评论