自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java类加载机制(JVM)

关联构造器是虚拟机视角下的()若该类具有父类,JVM会保证子类的()执行前,父类的()已经执行完毕。Java程序执行流程首先Java文件会进行编译,编译器为Javac编译器,将java文件编译成字节码文件(.class文件),然后进入Java虚拟机,Java虚拟机会对字节码文件进行处理,进而在操作系统上运行。(下图为较为详细的一个过程)类的加载主要在类的加载子系统中进行,主要过程为加载、连接和初始化,其中连接过程包括类的验证、准备和解析。...

2022-07-29 13:46:04 316 1

原创 计算机网络自学笔记008_Real(应用层)

应用层对应用程序的通信提供服务应用层协议的定义:应用进程交换的报文类型,究竟是请求报文还是响应报文各种报文类型的语法,如保温的各个字段及其详细描述字段的语义,即包含在字段中的信息的含义进程何时、如何发送报文,以及对报文进行响应的规则。应用层的功能:文件传输、访问与管理(FTP协议)电子邮件(SMTP协议、POP3协议)虚拟终端(HTTP协议)查询服务和远程作业登录(DNS协议)主要有两种:客户/服务器模型(Client/Server(C/S))P2P模型(Peer-to-peer)服务

2022-06-25 15:45:44 741

原创 计算机网络自学笔记007_Real(传输层)

传输层:只有主机才有的层次物理层、数据链路层以及网络层他们共同解决了将主机通过异构网络互连起来所面临的问题,实现类主机到主机的通信。但实际上在计算机网络中进行通信的真正实体是位于通信两端主机的进程。如何为运行在不同主机上的应用进程提供直接的通信服务是运输层的任务,运输层协议又称为端到端协议。运输层向高层用户屏蔽了下面网络核心的细节(入网络拓扑、所采用的路由选择协议等等),它使应用进程看见的就好像是两个运输层实体之间有一条端到端的逻辑通信信道。根据应用需求的不同,因特网的运输层为应用层提供了两种

2022-06-24 21:49:42 699

原创 计算机网络自学笔记006_Real(网络层002)

开放最短路径的优先OSPF协议:开放标明OSPF协议不是受某一家厂商控制,而是公开的,最短路径优先是因为使用了Dijkstra提出的最短路径算法SPF。OSPF最主要的特省就是使用分布式的链路状态协议1、使用洪泛法向自治系统内所有的路由器发送信息,即路由器通过输出端口向所有象林的路由器发送信息,而每个象林的路由器又再次将此信息发往其所有的相邻路由器。(类似于广播) 最终整个区域内所有路由器都得到了这个信息的一个副本。2、发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及链

2022-06-24 16:51:10 669

原创 计算机网络自学笔记005_Real(网络层001)

计算机网络五层架构的网络层(网际层)自学笔记001

2022-06-23 16:55:26 846

原创 计算机网络自学笔记004_Real(数据链路层002)

计算机网络自学笔记004_Real(数据链路层002)(MAC地址、IP地址、ARP协议、交换机、虚拟局域网)

2022-06-21 19:53:59 403

原创 JUC自学笔记02_real(Callable接口、读写锁、阻塞队列、线程池、合并分支、异步回调)

JUC自学笔记02_real(Callable接口、读写锁、阻塞队列、线程池、合并分支、异步回调)

2022-06-14 11:24:26 128

原创 JUC自学笔记01_real(概述、Lock接口、线程间通信、集合线程安全、多线程锁)

主要描述JUC并发编程的概念、Lock锁,synchronized关键字、线程间通讯、集合的线程安全、多线程锁等问题

2022-06-12 16:44:55 104

原创 Maven自学_Real

Maven自学001_Real()一、Maven是什么1、Maven的本质是一个项目挂美丽工具,将项目开发和管理过程抽象成一个项目对象模型(POM)2、POM(Project Object Model):项目对象模型3、Maven的作用:(1)项目构建:提供标准的,跨平台的自动化项目构建方式(2)依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题(3)同意开发结构:提供标准的,统一的项目结构二、Maven的下载与安装1、下载网址:https://maven.a

2022-04-21 21:30:10 145

原创 Spring5自学笔记_Real006(事务操作)

Spring5自学笔记_Real004(事务操作)一、事务的基本概念1、什么是事务:(1)事务时数据库操作的最基本单元,逻辑上的一组操作,要么都成功,有一组失败,所有的都会失败。事务时一组操作的集合,他是一个不可分割的工作单位,是误会吧所有的操作作为一个整体一起向系统提交或插销操作请求,即这些操作要么同时成功,要门同时失败。(2)典型场景:银行转账甲转给乙100元,那么甲账户里面少100元,乙账户里面多100元,若再系统进行的时候,甲少100元,这时候出现意外情况,比如停电,乙没有多出100元,

2022-04-15 15:20:41 537

原创 Spring5自学笔记_Real005(JDBCTemplate)

Spring5自学笔记_Real004(JDBCTemplate)一、概念与相关准备工作1、什么是JdbcTemplate(1)Spring矿建对JDBC进行了封装,使用JdbcTemplate方便实现对数据库的操作2、准备工作(1)引入相关jar包(2)在Spring配置文件中配置数据库的连接池<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema

2022-04-09 21:55:19 907

原创 Spring5自学笔记_Real004(AOP(面向切面编程))

Spring5自学笔记_Real004(AOP(面向切面编程))一、AOP面向切面编程(Aspect Oriented Programming)1、面向切面编程,利用AOP对业务逻辑各个部分进行隔离,从而使得业务逻辑各个部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。2、通俗描述:不通过修改任何源代码的方式,在主干功能里面添加新的哦功能二、AOP底层原理1、AOP底层使用了动态代理。(1)有两种情况的动态代理第一种:有接口的情况,使用JDK动态代理第二种:没有接口的情况,使

2022-04-08 22:38:00 207

原创 Spring5自学笔记_Real003(IOC的Bean管理-基于注解的方式)

Spring5自学笔记_Real00(IOC的Bean管理-基于注解的方式)

2022-03-31 19:31:54 184

原创 JavaSE自学笔记专题_Real(注解Annotation)

JavaSE自学笔记专题_Real(注解Annotation)一、注解基本概念1、注解,又叫做注释,英文单词Annotation2、注解Annotation是一种引用数据类型,编译之后也是生成xxx.class文件3、注解的定义: [修饰符列表] @interface 注解类型名{ 注解里面的内容}4、怎样使用?(1)注解的语法格式:@注解类型名(2)注解用在什么地方:类上面、方法上面、属性上面、变量上面等… …注解还能修饰注解,甚至是修饰自己。二、JDK内置了那些注解?1、

2022-03-31 15:14:19 129

原创 Spring5自学笔记_Real002(IOC的Bean管理-基于XML文件)

Spring5自学笔记_Real002(IOC的Bean管理-基于XML文件)IOC容器-Bean管理-XML方式(1)Bean管理主要值得是两个操作:Spring创建对象,Spring注入属性(2)Bean管理操作有两个方式(基于XML配置文件的方式 和 注解方式)1)基于XML配置文件方式实现例子:创建对象,然后注入属性在编写完Book类之后,设置配置文件如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="htt

2022-03-30 19:11:01 588

原创 Spring5自学笔记_Real001(基本概念)

Spring5自学笔记_Real001一、Spring基本概念1、Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面

2022-03-30 19:09:46 133

原创 JavaSE自学笔记专题_Real(反射机制Reflection)

JavaSE自学笔记专题_Real(反射机制Reflection)【韩顺平讲Java】Java反射专题 -反射 反射机制 类加载 reflection Class 类结构 等一、反射机制概述1、反射机制允许程序在执行的时候借助于ReflectionAPI获取任何类的内部信息(比如成员变量、构造器、成员方法等),并能操作对象的属性以及方法,反射在设计模式和框架底层都会用到。2、加载完类之后,在队中就会产生一个Class类的对象(一个类只有一个Class对象),这个对象包括了类的完成结构信息,通过这个对

2022-03-25 16:30:37 438

原创 数组209、长度最小的子数组

数组209、长度最小的子数组给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。来源:力扣(LeetCode)链接:https://leetcod

2022-03-10 22:02:37 70

原创 设计模式自学笔记007_Real(命令模式、备忘录模式、桥接模式)

设计模式自学笔记007_Real一、命令模式

2022-03-09 11:27:16 181

原创 设计模式自学笔记006_Real(责任链设计模式、模板方法设计模式、享元设计模式)

设计模式自学笔记006_Real(责任链设计模式、模板方法设计模式、享元设计模式)一、责任链设计模式为请求创建一个接收者对象的链,这种模式对请求的发送者和接收者进行解耦。通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么他就会把相同的请求传给下一个接收者,以此类推。那么假设现在有公司要采购办公椅,负责人是张三,他将采购计划报给自己的主管,主管以看数目太大不能自作主张,就提交给了老板,让老板决定是否购买。代码实现如下://接收链条的抽象类public abstract cla

2022-03-07 22:23:43 262

原创 设计模式自学笔记005_Real(状态设计模式、策略设计模式)

设计模式自学笔记005_Real(状态设计模式、策略设计模式)一、状态设计模式在阿里巴巴编写的程序员手册中提到,在程序中尽量减少if else语句的使用数量,如果需要使用尽量不超过三层判断,如果超过三层,那么建议选择使用卫语句、策略模式或者状态模式,那么介绍一下状态模式。当我们有一个方法需要多个if elsse语句的的时候,即需要多次判断,判断之后再进行其他程序的运行,那么我们可以使用状态模式,可以建立一个状态接口,定义我们需要实现的方法,然后为每一个状态单独建立一个类,并根据自己的状态实现状态接口的

2022-03-07 17:18:35 90

原创 设计模式自学笔记004_Real(观察者设计模式、外观设计模式)

设计模式自学笔记003_Real一、观察者设计模式在程序设计中,有的时候,我们的一个类(class1)的内容发生了改变,我们需要让其他的类根据class1的改变而做成相应的动作,那么就会用到观察者模式。我们需要有一个观察者类(Watcher1)来观察,如果头变动就去通知其他的类,让其他的类做出相应的改变。举个例子:假设现在电脑分配给了我们一个或几个端口,然后一旦某一个端口有数据进入,那么我们就去通知与端口对应的程序进行某些操作,比如电脑分配给我们8888端口,负责8888端口的程序是QQ,那么我们设置

2022-03-07 14:23:00 148

原创 设计模式自学笔记003_Real(装饰器设计模式、适配器设计模式)

设计模式自学笔记003_Real一、装饰器设计模式在之前的代理设计模式中,我们回对类中的方法进行拓展,现在,吴国一个类需要添加新的功能,即需要添加新的方法实现新的功能,那么第一种方式就是另外创建一个类来继承这个类,然后重写这个类的方法,并添加需要添加的新方法来实现新的功能。那么第二种方式就是利用装饰器设计模式。装饰器设计模式就是先建立一个公共的接口类,然后具体的类来实现这个接口类的方法,如果我们要在具体类中添加新的方法功能,则再建立一个装饰器类,创建原始类的实例化对象,并重写接口方法,利用实例化对象来

2022-03-07 10:50:50 197

原创 设计模式自学笔记002_Real(建造者模式、代理模式)

设计模式自学笔记002_Real一、建造者模式(生成器模式)当我们在创建类的实例化对象的时候,又的时候需要设置类的初始值,一般用构造器进行设置,但是,当一个类的初始值比较多的时候,我们的构造器里面的参数就会比较多,现在出现一种情况,就是我在创建实例化对象的时候不需要将这个类里面的变量全部初始化一遍,只需要设置几个就行了,那么第一个想到的就是多创建几个构造器,每一个构造器都根据需要只初始化几个变量,那么这样的话类内部的变量一旦太多,就会需要创建非常多的构造器,给程序员造成不必要的麻烦,而且如果现在又出现一

2022-03-05 21:29:25 348

原创 数组4、有序数组的平方

数组4、有序数组的平方给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例 1:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]示例 2:输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]出处:https://leetcode-cn.com/problems/s

2022-03-04 21:50:04 132

原创 数组3、移除元素

数组3、移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参作任

2022-03-04 21:08:32 120

原创 数组2、二分查找

数组2、二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-search著作权归领扣网络所有。商业转载请联系官方

2022-03-04 20:33:23 38

原创 设计模式自学笔记001_Real(单例设计模式、工厂设计模式)

设计模式自学笔记001_Real一、设计模式1、六大原则(1)单一原则:一个类或者一个方法只负责一项职责(2)里氏替换原则:子类可以扩展父类的功能,但不能改变原来父类的功能(3)依赖倒置原则:面向接口编程(通过接口作为参数实现)1)抽象就是接口或者抽象类,两者依赖其抽象2)上层模块不应该依赖下层模块,两者依赖抽象3)抽象不应该依赖细节,尽量使用抽象类,或者接口(4)接口隔离原则:建立单一接口(扩展为类也是一种接口,一切皆为接口)定义:客户端不应该依赖它不需要的接口,类之间依赖关系应该建立

2022-03-04 16:05:44 355

原创 数组1、两数之和

数组1、两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 来源:力扣(LeetCode)链接:https://leetcod

2022-03-03 21:30:31 110

原创 JDBC自学笔记002_Real

JDBC自学笔记001_Real一、练习,登录界面实现package com.bjpowernode.jdbc.LoginStudy;import java.sql.*;import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class Login { public static void main(String[] args) { //初始化一个界面

2022-03-01 22:27:32 142

原创 JDBC自学笔记001_Real

JDBC自学笔记001_Real一、基本概述JDBC:Java Data Base Connection数据的持久化:数据的持久化:把数据保存到可掉电式存储设备中心以供之后使用,大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以固化,而持久化的实现过程大多数通过各种关系数据库来完成。持久化的主要应用是将内存中的数据存储到关系型数据库中,当然也可以存储到磁盘文件,XML数据文件中。二、获取数据库连接1、Dirver接口实现类...

2022-02-27 22:29:01 192

原创 MySQL基础学习自学笔记002_Real

MySQL基础学习自学笔记002_Real

2022-01-07 21:07:03 570

原创 Git自学笔记001_Real(版本控制、版本迭代)

Git自学笔记001_Real(版本控制、版本迭代)一、版本控制概述版本控制(Revision Control)是一种在开发过程中用于管理我们对文件,目录或工程等内容的修改历史,方便查看更改历史记录。备份以便恢复以前版本内容的软件工程技术。实现跨区域多人协同开发追踪和记载一个或多个文件的历史记录组织和保护你的源代码和文档统计工作量并行开发,提高开发效率追踪记录整个软件的开发过程减轻开发人员的负担,节省时间,同时降低人为错误二、版本控制的分类1、本地版本控制记录文件每次的更新,可以

2021-12-22 20:53:09 1076

原创 JavaSE自学笔记021_Real(注解与反射 Annotation、Reflection)

JavaSE自学笔记021_Real(注解与反射)一、概述1、Annotation是从JDK5.0开始引入的新技术。2、Annotation的作用:(1)不是程序本身,可以对程序做出解释;(2)可以被其他程序(比如编译器)读取。3、Annotation的格式注解是以“@注释名”在代码中存在的,还可以添加一些参数值,例如@SuppressWarnings(value = "unlocked")4、Annotation在哪里使用?可以附加在pankage,class, method, fie

2021-12-21 18:28:39 508

原创 JavaSE自学笔记019_Real(Junit测试类)

JavaSE自学笔记019_Real(Junit测试类)一、JUnit断言Junit所有的断言都包含在Assertion类中这个类提供了很多有用的断言方法来编写测试用例,只有失败的断言才会被记录,Assert类中的一些有用的方法:assertEquals(boolean expected, boolean actual)检查两个变量活着等式是否平衡。assertTrue(boolean expected, boolean actual)检查条件为真。。。。。断言不成功会抛出异常,会有红色的进度

2021-12-17 14:11:16 78

原创 JavaSE自学笔记017_Real(多线程中的锁)(并发编程)

JavaSE自学笔记017_Real(多线程)一、synchronized简介在多线程并发编程中synchronized一直是元老级的角色,synchronized有三种方式来加锁,分别是: 1、修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁; 2、静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁; 3、修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁分类具体分类被锁对象伪代码方法实例方法调用该方法的

2021-12-14 09:46:50 317

原创 JavaSE自学笔记016_Real(多线程)

JavaSE自学笔记016_Real(泛型)一、泛型的定义泛型能够帮我们把【类型明确】的工作推迟到创建对象或调用方法的时候。1、泛型类:泛型类也就是把泛型定义在类上,这样用户在使用类的时候才把类型给确定下来。具体的方法就是使用<>加上一个未知数,通常用T K V等大写字符表示,事实上只要是个单词就行...

2021-12-09 19:39:29 402

原创 JavaSE自学笔记015_Real(异常 Exception)

JavaSE自学笔记015_Real(异常 Exception)一、Java的异常机制try catch机制 public static void main(String[] args) { while(true){ int num1 = 100; Scanner scanner = new Scanner(System.in); int num2 = scanner.nextInt();

2021-12-02 21:57:18 278

原创 JavaSE自学笔记014_Real(底层概述、底层逻辑、类的加载、类加载器、双亲委派机制)

JavaSE自学笔记014_Real一、解释还是编译?1、解释型语言与编译型语言:(1)解释型语言:代码没有编译的过程,读一行执行一行,比如JavaScript;(2)编译型语言:运行之前需要将代码先编译成【机器指令】,再运行,比如C语言。2、Java不是编译成具体的【机器指令】,因为不同的硬件结构和操作系统有不同的机器指令,java为了实现【一次编写,随处运行】的目标,实际上编译出的指令是【字节码】,字节码只能由JVM(Java虚拟机)识别,硬件无法识别,运行的过程是由JVM使用解释的方式执行的

2021-11-30 19:58:21 169

原创 JavaSE自学笔记014_Real(代码块、字节码、设计模式)

JavaSE自学笔记014_Real(代码块、字节码、设计模式)一、代码块代码块又称为初始化块,属于类中的成员,他是将逻辑语句封装在方法体中,通过{ }包裹。代码块没有方法名,没有参数,没有返回值,只有方法体,而且不通过对象或类进行显式的调用,他会在类记载或创建对象是主动的隐式调用。(一)静态代码块一个类被加载时被调用一次,常用在需要做一些全局初始化的工作。static{}(二)实例代码块每次创建实例,会被调用依次,其实用很少{}举个例子:public class Test

2021-11-27 19:01:30 368

空空如也

空空如也

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

TA关注的人

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