自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《提问的智慧》——Java后端

在学习Java后端当中,经常会遇到各种各样的问题,在遇到问题时,需要经常借助搜索引擎进行搜索,再搜索引擎搜索无果时,向他人提问是最好的解决办法之一。同样的,在搜索引擎搜索东西时需要稍加思考再进行使用, 对于提问者来说也需要思考之后再进行提问,这便是提问的智慧。提问的智慧一文中将提问分为三个过程。分别是提问前、提问时和提问后(即获得有关回答)。在不同的过程中有不同的方法和策略有助于我们更好地解决一个问题。

2022-11-05 18:51:03 848 1

原创 JVM4 内存模型(JMM)

未添加volatile关键字线程不会停止: t 线程要频繁从主内存中读取 run 的值,JIT 编译器会将 run 的值缓存至自己工作内存中的高速缓存中,减少对主存中 run 的访问,提高效率。1 秒之后,main 线程修改了 run 的值,并同步至主存,而 t 是从自己工作内存中的高速缓存中读取这个变量的值,结果永远是旧值。-如果一个对象虽然有多线程访问,但多线程访问的时间是错开的(也就是没有竞争),那么可以使用轻量级锁来优化。未加锁:i可能为正数或者负数,线程争夺。添加volatile:线程可以停止。

2022-10-31 12:02:01 184

原创 JVM3 类加载与字节码技术

适用情况想加载非 classpath 随意路径中的类文件都是通过接口来使用实现,希望解耦时,常用在框架设计这些类希望予以隔离,不同应用的同名类都可以加载,不冲突,常见于tomcat容器步骤继承 ClassLoader 父类要遵从双亲委派机制,重写findClass 方法注意不是重写 loadClass 方法,否则不会走双亲委派机制读取类文件的字节码调用父类的 defineClass 方法来加载类使用者调用该类加载器的 loadClass 方法案例Class

2022-10-29 22:48:33 425

原创 JVM2 垃圾回收(GC)

无需手动编码,但其内部配合引用队列使用,在垃圾回收时,终结器引用入队(被引用对象暂时没有被回收),再由 Finalizer 线程通过终结器引用找到被引用对象并调用它的finalize方法,实线箭头为强引用,后四种引用对象被垃圾回收的前提为该引用对象无强引用。新生代回收-》新生代+并发标记-》混合回收。当对象的引用计数变为零时,会被垃圾回收。跨代引用(老年代引用新生代):循环引用时无法被垃圾回收。

2022-10-28 14:09:43 489

原创 JVM1 内存结构

Program Counter Register 程序计数器(寄存器),程序计数器在物理上通过寄存器实现。

2022-10-24 12:42:31 395

原创 数据结构(c语言) 多维数组和矩阵

线性表是数学应用在计算机科学中一种相当简单与基本的数据结构,简单地说,线性表是n个元素的有限序列(n>=0) 例如:0 1 2 3 4就是五个阿拉伯数字组成的线性表,一、线性表的定义线性表的用途c/c++程序中的数组或字符串结构就是一种典型的线性表应用,线性表在计算机中属于内存中的静态结构数据,特性是使用连续的存储空间来存储。在编译时必须把内存分配给相关的变量,但这容易造成内存的浪费。 链表结构在c/c++中多半是以指针变量类型来实现线性表结构,特点是链表节点的内存分配在执行时才会发生所

2022-08-29 18:51:29 6692 2

原创 数据结构(c语言) 导论

一、数据结构简介数据结构是数据与算法的研究。数据结构包含算法、数据存储结构、排序、搜索、程序设计概念和哈希函数。1、数据与信息数据:未经处理的原始文字、数字、符号或图形等。表达出的只是一种没有评估价值的基本元素或项目。 信息:经过处理后的数据。2、算法数据结构+算法=可执行程序3、算法的条件输入:0个或多个数据,这些输入必须有清楚的描述或定义 输出:至少会有一个输出结果,不可以没有输出结果。 明确性:每一个指令或步骤必须是简洁明确的。 有限性:在有限步骤后一定会结束,不会产生无

2022-08-29 18:51:06 337

原创 数据结构C语言 线性表

一、线性表的概念及运算(一)线性表的逻辑结构线性表是n个数据元素的有限序列。表中元素存在线性关系。根据它们之间的关系可以构成一个线性序列,记作(a1,a2,...an)线性表中的元素具有相同的数据类型。线性表中数据元素的个数n定义为线性表的长度,称为表长。n=0时成为空表。ai是第i个数据元素,称i为位序。(二)线性表的运算线性表有以下基本运算1、Inilist():线性表初始化,构造一个空的线性表L。2、ListLength(L):求线性表的长度,返回线性表L中元素个数。3

2022-08-29 18:50:28 4995

原创 数据结构(c语言)单链表部分操作

链表是由许多相同数据类型的数据按照特定顺序排列而成的线性表。其优点是数据的插入和删除都相当方便,缺点是设计数据结构十分麻烦。 一、动态分配内存(一)C的动态分配变量c语言中可使用头文件下stdlib.h中的malloc()和free()函数在程序执行期间动态分配与释放内存。动态分配内存方式如下:数据类型*指针名称 = (数据类型*)malloc (sizeof(数据类型)*n);n=1即表示一个变量变量或对象在使用动态内存分配后,必须进行内存的释放。否则会造成“内存漏失”现象。..

2022-08-29 18:49:54 919

原创 秒杀项目总结

使用SpringBoot完成的商城订单秒杀模块,主要使用Redis和RabbitMQ进行优化操作,对于高并发场景下学习有所帮助。

2022-08-26 22:14:47 939

原创 Java javase16

一、Stream流(一)流式思想概述当需要对多个元素进行操作(多步操作)时,考虑到性能及便利性,我们应该拼好一个模型再按照方案去执行它。(拼接流式模型)Stream流是一个来自数据源的元素队列。元素是特定类型的对象,形成一个队列。Java中的Stream并不会存储元素而是按需计算。数据源流的来源,可以是集合,数组等。Stream操作有两个基础特征PIpelinling:中间操作都会返回流本身。这样多个操作可以串联成一个管道,如同流式风格。内部迭代:Stream提供了内部迭代方式,流可以

2021-09-04 12:55:25 215

原创 Java javase15

一、网络编程(一)软件结构C/S结构:全称为Client/Server结构,是指客户端和服务器结构。常见的有QQ、迅雷等。B/S结构:全称为Browser/Server结构,是指浏览器和服务器结构。常见的有谷歌、火狐等等。网络编程:就是在一定的协议下实现两台计算机的通信的程序。(二)网络通信协议网络通信协议:通过计算机网络使多台计算机实现连接位于同一个网络中的计算机在进行连接和通信时需要遵守的一定规则。在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据传输的格式、传输的速率和步骤

2021-08-27 11:46:17 210

原创 Java javase14

一、File类(一) 概述1.java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建。2.我么可以使用File类的方法创建、删除、获取一个文件/文件夹判断文件是否存在对文件进行遍历获取文件的大小File类是一个与系统无关的类,任何操作系统都可以使用这个类中的方法。3、重点file:文件directory:文件夹/目录path:路径(二)File类的静态成员变量static String pathSeparator与系统有关

2021-08-25 16:52:09 253

原创 Java编程 Javase13

一、多线程(一)并发与并行(二)进程概念进程指一个内存中的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个程序从创建、运行到消亡的过程。(三)线程概念线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以被称之为多线程程序。 总之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程。(四)线

2021-08-21 21:03:09 343

原创 Java编程 Javase12

一、异常(一)异常的概念和体系1、异常的概念异常: 指的是程序在执行过程中,出现的非正常情况,最终会导致JVM非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。注意:异常指的并不是语法错误,若编译错误,则不会产生字节码文件,根本不能运行。2、异常的体系异常的根类是java.lang.Throwable,其下有两个子类:java.lang.Error与java.lang.Exception,平常

2021-04-17 15:02:14 398 1

原创 Java编程 Javase11

一、Map集合(一)概述1、Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)2、Map集合中的元素,key和value的数据类型可以相同也可以不同3、Map集合中的元素,key是不允许重复的,value是可以重复的4、Map集合中的元素,key和value是一一对应的。(二)Map常用子类HashMap集合java.util.HashMap<k,v> 集合 implements Map<k,v>接口特点1、HashM

2021-04-06 21:01:36 214 1

原创 Java编程 Javase10

一、List集合(一)List接口介绍java.util.list接口继承自collection接口,时单列集合中的一个重要分支,习惯性的会将实现了List接口的对象称为List集合。 特点:它是一个元素存取有序的集合。例如,存元素的顺序是11、22、33.那么集合中,元素的存储就是按照11、22、33的顺序完成的。 它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)。 集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素。(二)L

2021-03-27 21:31:39 115

原创 Java编程 Javase09

一、包装类(一)概念1、定义:将基本类型的数据包装起来,这个类叫包装类。在包装类中可以定义一些方法,用来操作基本类型的数据。2、基本数据类型除int——Integer,char——Character外其余均为首字母大写(二)装箱与拆箱装箱:从基本类型转换为对应的包装类对象。 拆箱:从包装类对象转换为对应的基本类型。1、装箱构造方法:Integer(int value):构造一个新分配的Interger对象,它表示指定的int值Integer(String s):构造一个新

2021-03-24 20:58:29 192

原创 Java编程 JavaSe08

一、Date类(util)表示特定的时间,精确到毫秒。表示日期和时间的类。 毫秒表示千分之一秒。1000毫秒=1秒。 特定的瞬间:一个时间点。(一)毫秒值的概念和作用1、毫秒值:(1)作用:可以对时间和日期进行计算。可以把日期转换为毫秒进行计算,计算完毕,再把毫秒转换为日期。(2)把当前的日期转换为毫秒:当期的日期:2008-01-01 时间原点(0毫秒):1970年1月1日00:00:00 就是计算当前日期(3)把毫秒转化为日期一天=86400000毫秒 中国属于东.

2021-03-14 17:33:47 115

原创 Java编程 Javase07

一、内部类(一)内部类的概念与分类1、概念:如果一个事物的内部包含另一个事物,那么这就是一个类内部包含另一个类。例如:身体和心脏的关系,又如汽车和发动机的关系。2、分类成员内部类、局部内部类(包含匿名内部类)3、成员内部类(1)定义格式:修饰符 class 外部类名称{ 修饰符 class 内部类名称{ //... } //...}注意:内用外,随便访问。外用内,需要内部类对象。(2)使用间接使用:在外部类的方法中,使用内部类

2021-03-07 18:57:21 188 3

原创 Python基础04

一、文件和异常(一)从文件中读取数据要使用文本文件中的信息,首先需要将信息读取到内存中。为此,可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取。1、读取整个文件要读取文件,需要一个包含几行文本的文件。#创建一个文本文件Hello World!Hello everyone!# 第一行代码中,函数open()负责接受一个参数:即要打开文件的名称。# 之后返回一个表示文件的对象,即1.txt。并存储到变量中。# 关键字with在不需要访问文件时将其关闭。也可以不使用w

2021-02-16 23:37:56 343 2

原创 Java编程 Javase06

一、多态 面向对象三大特征:封装性、继承性、多态性。 extends继承或implements实现,是多态性的前提 (一)多态的概述例如:小明是一个学生(学生形态),也是一个人(人类形态)。 小明是一个对象,这个对象既有学生形态也有人类形态。 定义:一个对象拥有多种形态,这就是对象的多态性。(二)多态的格式与使用代码当中体现多态性,其实就是:父类引用指向子类对象。1、格式父类名称 对象名 = new 子类名称 () ;或者接口名称 对象名 = new 实现类

2020-12-29 16:15:53 126

原创 Python python基础03

一、函数(一)、定义函数1、定义函数的格式def 函数名(参数无参可不写): 函数体2、函数的简单调用:依次指定函数名以及参数例如:

2020-12-27 21:01:15 326

原创 java编程 Javase05

一、继承1、继承的概述:继承是多态的前提,如果没有继承就没有多态。继承主要解决的问题就是:共性抽取。2、继承的格式在继承的关系中,子类可以被当作父类看待。例如:父类是员工,子类是讲师,那么“讲师就是一个员工”定义父类的格式:(一个普通的定义)pubilc class 父类名称{ //...}定义子类的格式:public class 子类名称 extends 父类名称{ //...}3、继承中成员变量的访问特点...

2020-12-21 20:42:58 121

原创 Python python基础02

一、字典1、字典的使用(1)定义:在Python中,字典是一系列键—值对。每个键都与一个值相关联,可以使用键来访问与其相关联的值。与键相关联的值可以是数字、字符串、列表甚至字典。(事实上,可将任何Python对象放进字典当中。)在python中,字典用放在花括号内一系列键—值对表示。例如:zhangsan={'height':183,'kg':80}print(zhangsan['height"])print(zhangsan['kg'])#输出为183,80键—值对是两个相关联

2020-12-20 19:14:57 145

原创 Java编程 Javase04

一、API的概述和使用1、定义:应用程序编程接口。实际就是很多类的集合,类似于Java中程序员使用的字典。使用1.6版本的JDK API使用步骤:点击显示——>搜索需要使用的类——>看包路径——>看构造方法和方法摘要2、Scanner类(1)定义:一个可以解析基本类型和字符串的简单文本扫描器(2)功能:可以实现键盘输入数据到程序当中。引用类型的一般使用步骤:01、导包import 包路径.类名称注意:如果需要使用的目标类,和当前类位于同一包下,则

2020-12-13 20:26:44 275

原创 Python python基础01

一、pycharm的使用1、安装pycharm2、使用pycharm新建包——》新建python file二、变量和简单的数据类型1、运行HelloWorld时出现的情况(1).py代表这是一个python程序(2)语法突出:指编译器会用不同的颜色突出不同的语法成分如:print2、变量(1)变量的命名和使用01、变量名只能包含字母、数字和下划线。变量名可以字母或者下划线打头,但不用数字打头。例如:1_me是错误的,而me_1正确02、变量不能包含空格但可

2020-12-03 20:59:21 416

原创 Java编程 javase03

一、面向对象1、面向对象概述(1)面向对象与面向过程的区别面向过程:当需要实现一个功能的时候,每一个具体的步骤都要亲历亲为,详细处理每一个细节。强调步骤。面向对象:当需要实现一个功能的时候,不管心具体的步骤,而是找一个已经具有该功能的人帮我做事。强调对象。 例子:遍历数组生活举例:手洗...

2020-11-30 22:24:35 92

原创 java编程 Javase02

一、方法1.方法入门小case:print打印时不换行 println打印默认换行(1)定义格式:public class void 方法名称(){ 方法体;}(2)调用格式:方法名称();(3)注意事项1.方法定义的先后顺序无所谓2.方法的定义不能产生嵌套和包含关系3.方法定义之后不会执行。若想执行必须进行方法的调用.2.方法(1)定义:方法是若干语句的功能集合,参数和返回值时关键a.参数:进入方法...

2020-11-23 21:42:00 123

原创 java编程 Javase 01

一、IDea软件的使用1.java编程的使用(初始版)编写代Jet码>启动cmd>调用java编程>调用java运行2.Idea(1)定义:集成开发环境,是一种提高编程效率的Java软件(2)下载及安装:JetBrians.com(Umliate版本 黑马教学使用2017.3.4版)(3)...

2020-11-18 19:21:00 177

空空如也

空空如也

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

TA关注的人

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