自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java多线程超级详解(简单,详细,易懂)

java多线程1.java中线程的创建方式1.1.线程的介绍1.1.线程的创建2.Run方法Start()方法的比较3.线程的生命周期4.线程方法的介绍与使用5.java中关于线程的调度6.多线程的安全问题6.1.线程的同步6.3.java中那些变量会有线程安全的问题6.4.关synchrozied()的面试题来解析7.死锁7.守护线程1.java中线程的创建方式1.1.线程的介绍线程和进程进程和线程算是操作系统内两个很基本、很重要的概念了,进程是操作系统中进行保护和资源分配的基本单位,操作系统分配

2020-12-05 10:26:54 356 5

原创 Hadoop介绍

文章目录前言一、Hadoop是什么?二、 Hadoop的优势是什么?二、 Hadoop的组成三、 Hadoop的整体框架前言一、Hadoop是什么?(1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构(2)主要解决海量数据的存储和海量数据的分析计算问题(3)广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈二、 Hadoop的优势是什么?(1)高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的.

2022-03-08 22:42:06 477

原创 什么是 XSS 攻击?什么是 SQL 注入攻击?什么是 CSRF 攻击?

XSS攻击XSS(Cross Site Script,跨站脚本攻击)是向网页中注入恶意脚本在用户浏览网页时在用户浏览器中执行恶意脚本的攻击方式。跨站脚本攻击分有两种形式:反射型攻击(诱使用户点击一个嵌入恶意脚本的链接以达到攻击的目标,目前有很多攻击者利用论坛、微博发布含有恶意脚本的 URL 就属于这种方式)和持久型攻击(将恶意脚本提交到被攻击网站的数据库中,用户浏览网页时,恶意脚本从数据库中被加载到页面执行,QQ 邮箱的早期版本就曾经被利用作为持久型跨站脚本攻击的平台)。XSS 虽然不是什么新鲜玩意

2021-07-04 16:05:12 426

转载 Spring中的设计模式

Spring中的设计模式spring中常用的设计模式达到九种,我们举例说明:第一种:简单工厂又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。第二种:工厂方法(Factory Method)通常由应

2021-07-04 11:49:26 339

原创 一篇文章帮你搞定计算机网络面试

计算机网络的体系结构图网络的七层模型与5层模型网络七层模型:物理层,数据链路层,网络层,运输层,会话层,表现层,应用层 五、每一层的作用如下:1、物理层主要定义物理设备标准,例如网线的接口类型、光线的接口类型、各种传输介质的传输速率等。他的主要作用是传入比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是我们通常所说的数模转换与模数转换)。这一层的数据叫做比特流。。2、数据链路层定义了如何让数据格式化进行传输,以及如何让控制对...

2021-07-01 12:20:15 134 1

原创 String intern() 方法详解

intern()方法的使用如何保证声明了一个变量他指向的是常量池中的内容呢?主要有两种方式://方式1 : 采用字面量定义 String s = "abc"; //方式二: 调用intern() 方法 String s1 = new String("abc").intern(); String s2 = new StringBuffer("abc").toString().intern(); String s3 = ne

2021-06-10 16:12:59 145 2

原创 共享锁、排他锁、互斥锁、悲观锁、乐观锁、行锁、表锁、页面锁、不可重复读、丢失修改、读脏数据

今天去看牙医,他问我年级轻轻牙齿怎么磨损这么严重?我说,没有点赞的这些年,我都是咬着牙过来的。共享锁(S锁):又称为读锁,可以查看但无法修改和删除的一种数据锁。如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排它锁。获准共享锁的事务只能读数据,不能修改数据。 共享锁下其它用户可以并发读取,查询数据。但不能修改,增加,删除数据。资源共享.排它锁(X锁):又称为写锁、独占锁,若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的

2021-06-07 10:33:46 234

原创 Java中对象的创建过程

JVM调优篇1.说一说JVM的内存模型?通过工具我们看一下JVM的内存对应上图我们画出JVM的 内存模型2.JAVA类加载的全过程是什么样的?什么是双亲委派机制?有什么作用?一个对象从加载到JVM,再被GC清楚,发生了什么?java的类加载器:(1.)AppclassLoder (2)ExtclassLoder (3)BootstrpclassLoder(底层是由C++写的)怎么确定一个对象是不是垃圾?什么是GC ROOT?二级标题二级标题二级标题...

2021-06-07 10:33:29 262 1

原创 学懂Java的内存模型才有底气去面试

内存结构1.程序计数器1.1定义1.2作用2.虚拟机栈2.1定义2.2栈内存溢出2.3线程运行诊断3本地方法栈4堆4.1定义4.2堆内存溢出4.3堆内存诊断5方法区5.1定义5.2组成5.3方法区内存溢出5.4运行时常量池5.5StringTable5.6StringTable特性5.7StringTable位置5.8StringTable垃圾回收5.9StringTable性能调优6直接内存6.1 定义6.2分配和回收原理1.程序计数器1.1定义Program Counter Register 程序

2021-06-05 11:24:52 74 1

原创 搞懂线程池原理,才有底气去面试

先了解一下线程池的经典面试题?以上就是我们学习的目标为什么使用线程池?优势是什么?大部分人的回答都是,降低资源消耗,提高响应速度,提高线程的可管理性。那么为什么会提高呢?从根源上开始将,首先我们谈一下对java线程概念的理解线程:是调度CPU资源的最小单位,也叫轻量级进程线程模型的分类:用户级线程:用户程序实现,不依赖操作系统核心,应用提供创建、同步、调度、和管理线程的函数来控制用户线程。不需要用户态/内核态切换,速度快。内核对ULT无感知,线程阻塞则进程(包括它的所有线程)阻塞。内核级

2021-06-03 17:07:27 141

原创 ConcurrentHashMap源码分析与深入理解

CuncurrentHashMap初理解我们都知道HashMap在多线程情况下,在put的时候,插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是rehash,这个会重新将原数组的内容重新hash到新的扩容数组中,在多线程的环境下,存在同时其他的元素也在进行put操作,如果hash值相同,可能出现同时在同一数组下用链表表示,造成闭环,导致在get时会出现死循环,所以HashMap是线程不安全的。我们来了解另一个键值存储集合HashTable,它是线程安全的,它在所有涉及到多线程操作的都加

2021-05-28 19:42:32 218

原创 HashMap学习剖析

1.入门package com.lf.hashMap.day1;import java.util.HashMap;public class Test01 { public static void main(String[] args) { HashMap<String,String > map = new HashMap<>(); map.put("01","zhangsan"); map.put("02","lisi")

2021-05-23 12:24:51 139 7

原创 HashMap的几种遍历方式

主要介绍HashMap的四种循环遍历方式第一种通过获取所有的Key 来获取valueimport java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;public class showMap { public static void main(String[] args) { HashMap<Integer,String> hashMap =

2021-04-16 21:39:51 160 2

原创 . String StringBuffer 和 StringBuilder 的区别是什么? String 为什么是不可变的?

可变性简单的来说:String 类中使⽤ final 关键字修饰字符数组来保存字符串, private final charvalue[] ,所以 String 对象是不可变的补充:在 Java 9 之后,String 类的实现改⽤ byte 数组存储字符串private final byte[] value⽽ StringBuilder 与 StringBuffer 都继承⾃ AbstractStringBuilder 类,在AbstractStringBuilder 中也是使⽤字符数组保存字符串

2021-03-07 14:42:15 214 3

原创 Spring中的注解大全与详解

Spring使用的注解大全和解释注解 解释@Controller 组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类,然后将web请求映射到注解了@RequestMapping的方法上。@Service 组合注解(组合了@Component注解),应用在service层(业务逻辑层)@Reponsitory 组合注解(组合了@Component

2021-03-07 10:17:50 6176

原创 使用IDEA创建Mybatis的模板

第一步创建Mybatis的映射文件和Mybatis配置文件的模板内容1`<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <se

2021-02-19 20:13:54 629

原创 Mybatis 对象的详解

Mybatis中主要的类有1.Resources2.SqlSessionFactoryBuilder3.SqlSessionFactory4.SqlSession介绍

2021-02-09 00:28:34 330

原创 聊聊常见的加密算法、原理、优缺点、用途

概述在安全领域,利用密钥加密算法来对通信的过程进行加密是一种常见的安全手段。利用该手段能够保障数据安全通信的三个目标:1、数据的保密性,防止用户的数据被窃取或泄露2、保证数据的完整性,防止用户传输的数据被篡改3、通信双方的身份确认,确保数据来源与合法的用户而常见的密钥加密算法类型大体可以分为三类:对称加密、非对称加密、单向加密。下面我们来了解下相关的算法原理及其常见的算法。在加密传输中最初是采用对称密钥方式,也就是加密和解密都用相同的密钥。对称加密过程如下:1.对称加密算法采用单密钥

2021-01-24 12:42:55 3384

原创 括号匹配

使用栈完成括号的匹配思路要判断括号的有效性,左括号必须和右括号相对应。如果是有效括号,并且他们中间还有括号,那么他们必须也是有效的,所以最简单的一种方式就是使用栈来解决。我们遍历字符串中的所有字符1,如果遇到了左括号,就把对应的右括号压栈(比如遇到了字符’(’,就把字符’)'压栈)。2,如果遇到了右括号1)查看栈是否为空,如果为空,说明不能构成有效的括号,直接返回false。2)如果栈不为空,栈顶元素出栈,然后判断出栈的这个元素是否等于这个右括号,如果不等于,说明不匹配,直接返回false。如

2021-01-17 23:50:02 80

转载 你不知道的java中的四种引用类型

引用与对象每种编程语言都有自己操作内存中元素的方式,例如在 C 和 C++ 里是通过指针,而在 Java 中则是通过“引用”。在 Java 中一切都被视为了对象,但是我们操作的标识符实际上是对象的一个引用(reference)。//创建一个引用,引用可以独立存在,并不一定需要与一个对象关联String s;通过将这个叫“引用”的标识符指向某个对象,之后便可以通过这个引用来实现操作对象了String str = new String("abc");System.out.println(str

2020-12-09 10:12:09 120 1

原创 希尔排序1

希尔排序1.希尔排序法基本思想希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至 1 时,整个文件恰被分成一组,算法便终止2.希尔排序法的示意图希尔排序的逐步分析和总体实现代码package sort;import java.util.Arrays;/** * @ClassName: shellSort * @Description: 希尔排序 * @Date: 2020 年 10月 28 20:24 * @V

2020-10-29 01:14:48 165

原创 冒泡排序

冒泡排序小结上面的图解过程:(1) 一共进行 数组的大小-1 次 大的循环(2)每一趟排序的次数在逐渐的减少(3) 如果我们发现在某趟排序中,没有发生一次交换, 可以提前结束冒泡排序。这个就是优化package sort;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;import java.util.logging.SimpleFormatter;/** * @Clas

2020-10-26 00:44:04 175

原创 java实现栈+栈的应用( 括号匹配算法常用思路)

栈实现后缀表达式求值思路分析我们完成一个逆波兰计算器,要求完成如下任务:输入一个逆波兰表达式(后缀表达式),使用栈(Stack), 计算其结果支持小括号和多位数整数,因为这里我们主要讲的是数据结构,因此计算器进行简化,只支持对整数的计算。思路分析例如: (3+4)×5-6 对应的后缀表达式就是 3 4 + 5 × 6 - , 针对后缀表达式求值步骤如下:1.从左至右扫描,将 3 和 4 压入堆栈;2.遇到+运算符,因此弹出 4 和 3(4 为栈顶元素,3 为次顶元素),计算出 3+4 的值

2020-10-22 16:40:17 357

原创 java栈的实现及应用

栈实现表达式求值思路分析使用找完成表达式的计算思路1.通过一个index值(索引) ,来遍历我们的表达式2.如果我们发现是一个数字,就直接入数栈3.如果发现扫描到是一个符号, 就分如下情况3.1如果发现当前的符号栈为空,就直接入栈3.2如果符号栈有操作符,就进行比较,如果当前的操作符的优先级小于或者等于核中的操作符,就需要从数栈中pop出两个数在从符号栈中pop出一个符号,进行运算,将得到结果,入数栈,然后将当前的操作符入符号栈,如果当前的操作符的优先级大于栈中的操作符,就直接入符号栈4.

2020-10-22 16:37:29 206

原创 java使用链表模拟栈

链表容易报空指针异常的数据结构,但是它也有自己的好处,这里面不用判断栈是否已满,因为相对于数组来讲,链表是一种动态的存储方法,只需要在输出的时候判断是否为空即可.package Stack;/** * @ClassName: ListStackDemo * @Description: * @Author: 李峰 * @Date: 2020 年 10月 20 0:08 * @Version 1.0 */public class ListStackDemo { public s..

2020-10-20 00:42:32 570 1

原创 java是使用数组模拟栈

栈的介绍栈的英文为(stack)栈是一个先入后出(FILO-First In Last Out)的有序列表。栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除图解方式说明出栈(pop)和入栈(push)的概念栈的应用场景

2020-10-20 00:05:04 98

原创 单向循环链表解决(详细思路+图解)约瑟夫问题

Josephu 问题Josephu 问题为:设编号为 1,2,… n 的 n 个人围坐一圈,约定编号为 k(1<=k<=n)的人从 1 开始报数,数到m 的那个人出列,它的下一位又从 1 开始报数,数到 m 的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。提示用一个不带头结点的循环链表来处理 Josephu 问题:先构成一个有 n 个结点的单循环链表,然后由 k 结点起从 1 开始计数,计到 m 时,对应结点从链表中删除,然后再从被删除结点的下一个结点又从.

2020-10-16 00:51:40 1036

原创 java双链表的实现+模拟水浒英雄排行

用双链表实现对水浒英雄的管理package List.DoubleLinked;public class DoubleLinkedListDemo { public static void main(String[] args) { HeroNode heroNode1 = new HeroNode(1, "宋江", "及时雨"); HeroNode heroNode2 = new HeroNode(2, "吴用", "智多星"); HeroNod

2020-10-15 13:49:12 125

原创 java单链表实现+模拟水浒英雄排名

直接上代码,手撕单链表package List;/*使用带 head 头的单向链表实现 –水浒英雄排行榜管理完成对英雄人物的增删改查操作, 注: 删除和修改,查找可以考虑学员独立完成,也可带学员完成1) 第一种方法在添加英雄时,直接添加到链表的尾部2)第二种方式在添加英雄时,根据排名将英雄插入到指定位置(如果有这个排名,则添加失败,并给出提示)*/import java.util.Stack;import static List.SingleLinkedList.reverse;/**

2020-10-14 20:00:49 412

原创 数组模拟队列的实现过程

package queue;/** * @ClassName: ArrayQueue * @Description: * @Author: 李峰 * @Date: 2020 年 10月 11 10:10 * @Version 1.0 */public class ArrayQueueDemo { public static void main(String[] args) { ArrayQueue arrayQueue = new ArrayQueue(3); .

2020-10-11 12:20:08 65

原创 二维数组转换为稀疏数组

public class SparseArray { public static void main(String[] args) { //创建一个二维数据11*11 //模拟棋盘 0 代表无子 1 代表黑子 2代表蓝色 int[][] array1 = new int[11][11]; array1[1][2] = 1; array1[2][3] = 2; //循环遍历 输出二维数组 f

2020-10-10 22:47:24 75

原创 java基础版肯德基收银系统(工厂模式)

同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++或Java或Python结合设计模式(2种以上)至少实现系统的以下功能:1.正常餐品结算和找零。2.基本套餐结算和找零。3.使用优惠劵购买餐品结算和找零。4.可在一定时间段参与店内活动(自行设计或参考官网信息)。5.模拟打印小票的功能(写到文件中)。基本要求:1.程序设计风格良好,控制台界面友好,最多两人一组完成任务。2.实现功能测试代码,确保程序的健壮性。3.画出使用的设计模式图

2020-06-01 19:24:06 417

原创 用Java文件的词频统计

直接上代码了题目要求,从本地文件导入一个文件,文件里面是很多的单词,要求统计每个单词出现的次数,并把每个单词出现的次数排序,然后导出到本地磁盘算法思维因为要统计每个单词的次数,所以我们把文件内容存储到hashmap中然后要使用排序算法,hashmap里面没有排序的函数,所以我们想到了ArrayList中的内部排序,所以问题就转换为了将数据放到ArrayList中对他进行排序package...

2020-05-07 19:59:27 260

原创 java基础项目实战-------超市会员管理系统

直接上代码,个人认为代码逻辑很清楚发现问题,希望各位随时私聊package market;public class Member { private String name; //姓名 private int cardId; //会员卡号 private String password; //密码 private int score; //积分 pr...

2020-05-06 13:19:37 4742 9

转载 深入理解java中的equals和"=="的用法

[添加链接描述]这里转载了一篇文章,帮助深入理解java中的equals和"=="的用法(https://blog.csdn.net/qq_44543508/article/details/95449363)

2020-04-25 22:14:00 155

原创 java外部排序

之前讲了外部排序,他是需要我们在Student类中写排序的方法,但是很多时候需求要求我们不能去修改别的代码,但是还要完成别人的需求.所以外部排序就是在不修改别的类的同时,完成排序需求.package Comparator;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator...

2020-04-24 14:46:17 327

原创 java内部排序

要实现对一个对象中的某一个属性进行排序这里是外部排序,在Student类中写排序的方法package Comparable;import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.List;public class Comparable...

2020-04-24 14:40:59 108

原创 java中ArrayList使用和理解

这里主要讲了ArrayList中的一些常用的方法使用package List;import java.util.ArrayList;import java.util.Collections;public class ArrayListDemo { public static void main(String[] args) { //尖括号先不用管,这里用到时泛...

2020-04-23 13:01:26 126

原创 java异常之throws,throw,用户自定义异常

package cn.Exception.cn.throwss;public class yichang01 { public static void see() throws Exception{ //一旦方法抛出的是一个最大的异常时(throws Exception),谁去调用它谁就要抛出异常 System.out.println(1/0); ...

2020-04-21 19:16:22 238

原创 java中基本常见的异常举例

这里使用了基本方法try{}catch()处理异常package cn.Exception;public class Exception { public static void main(String[] args) { //ArithmeticException分母不能为0 try { System.out.println(...

2020-04-21 17:37:52 212

空空如也

空空如也

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

TA关注的人

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