自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA并发编程-02-Java线程

JAVA线程创建和运行线程方式创建和运行线程方式方法一:继承Thread类,重写run方法方法二:实现Runnable接口,把对象传入Thread。把【线程】和【任务】分开原理区别:方法一是子类重写了Thread类的run方法,然后执行。方法二把runnable类的target实例传给Thread类,执行了自己的任务。总结:推荐用runnable接口。方法1 是把线程和任务合并在了一起,方法2 是把线程和任务分开了 用Runnable 更容易与线程池等高级 API 配合用Runna

2021-03-04 14:52:20 116

原创 JAVA并发编程-01-进程和线程

进程和线程基本概念进程线程进程vs线程并行和并发基本概念进程程序由指令和数据组成,这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理IO的当一个程序被运行,从 磁盘加载这个程序的代码至内存,这是就开启了一个进程进程就可以视为程序的一个实例。大部分程序可以同时运行多个实例进程(如记事本、画图、浏览器等),也有的程序只能启动一个实例进程(360,网易云音乐等)线程一个进程之内可以分为一到多个线

2021-01-19 20:53:05 117 1

原创 JAVA虚拟机-01-JVM作用/基本介绍/架构/生命周期

JVMJAVA虚拟机的作用特点JVM的位置JVM的整体结构JAVA代码执行流程JVM的架构模型基于栈架构的特点基于寄存器架构JVM的生命周期虚拟机的启动虚拟机的执行虚拟机的退出JAVA虚拟机的作用Java虚拟机就是二进制字节码的运行环境,负责装载字节码到其内部,解释、编译为对应平台上的机器指令执行。每一条JAVA指令,Java虚拟机规范中都有详细定义,如怎么去操作数,怎么处理操作数,处理结果放在哪里。特点一次编译,到处运行自动内存管理自动垃圾回收功能JVM的位置JVM运行在操作系统上,

2021-01-07 21:46:02 161 3

原创 SpringBoot-02-日志

SpringBoot日志SpringBoot日志原理日志级别SpringBoot日志原理SpringBoot选用 SLF4j和logback;日志底层依赖关系:SpringBoot也把其他的日志都替换成了slf4j;SpringBoot能自动适配所有的日志,而且底层使用slf4j+logback的方式记录日志,引入其他框架的时候,只需要把这个框架依赖的日志框架排除掉即可;日志级别由低到高 trace<debug<info<warn<error,默认显示info及以后。

2020-12-08 20:25:16 82

原创 SpringBoot-02-配置文件

配置文件YAML(YAML Ain't Markup Language)0.语言特性1.基本语法2.值的写法字面量:普通的值(数字,字符串,布尔)对象、Map(属性和值)(键值对):数组(List、Set):配置文件值注入1.@ConfigurationProperties2.@Value3.@ConfigurationProperties对比@ValueSpringBoot使用一个全局的配置文件,配置文件名是固定的;application.propertiesapplication.yml配置

2020-12-07 21:21:19 88

原创 Spring Boot入门

1. Spring简介简化Spring应用开发的一个框架;整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案。2. 微服务微服务是一种架构风格,阐明一个应用应该是一组小型服务,小型服务之间可以通过HTTP进行沟通。传统单体应用:微服务:把每个功能元素放到一个独立服务中。每个都是一个可独立替换,可独立升级的独立单元。...

2020-12-05 16:21:35 67

原创 科学进行SSM整合(spring、springMVC、Mybatis),重在整合思路

SSM整合maven依赖写配置maven依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.ap

2020-11-29 18:03:04 130

原创 MyBatis学习笔记

MyBatis框架引入目的用法步骤写配置文件(2个)测试使用注意细节框架引入目的原生JDBC过于复杂。并且sql语句是硬编码在程序中的,耦合(数据库层的和java编码耦合);ORM又过于强大,用户难以进行SQL语句优化。MyBatis应运而生。将重要步骤(SQL语句)抽取出来,好维护。其他步骤自动化。用法步骤写配置文件(2个)全局配置文件(指导mybatis运行的),dao接口的实现文件(描述dao中每个方法怎么工作)第一个配置文件;(称为mybatis的全局配置文件,指导mybati

2020-11-20 16:18:34 110 1

原创 SpringMVC学习笔记

SpringMVCSpringMVC工作流程RequestMappingSpringMVC工作流程RequestMapping1.写在类上相当于加了一个根标签

2020-11-15 21:20:07 64

原创 spring学习笔记

目录Spring IOCSpring IOC1.IOC容器中组件对象的创建,在容器启动完成就已经创建了对象;2.同一个组件在IOC容器中是单实例的,容器启动完成就已经创建好了。3.容器中若没有要求的组件,创建时(getbean)会报异常4.容器通过setter方法为对象赋值。5.javaBean的属性名有getter、setter决定。...

2020-10-29 21:22:05 86

原创 书城项目

前端验证用户表单项是否填写正确(用户名,密码,email…),使用正则表达式判断。IDEA tomcat部署web项目,在out目录下。servlet是web服务器端的一个JAVA程序,用来处理客户端发来的http请求。使用步骤:创建自己的servlet接口实现类,实现service方法,在web.xml中配置servlet信息。...

2020-10-24 22:40:30 586

原创 递归和回溯法

树型问题递归调用的重要性质,每层调用完总是要返回上一层。这种称为“回溯”。算法复杂度是指数级。回溯法是暴力法的一个主要实现手段。17:电话号码字母组合(经典例题)练习题:93,131...

2020-09-29 16:06:33 163

原创 传输层

目录一级目录二级目录三级目录一级目录二级目录三级目录

2020-09-22 16:37:23 130

原创 JAVA语言-语言基础-注解

目录注解概念功能分类JDK内置注解自定义注解元注解:用于描述注解的注解在程序中使用(解析)注解注解概念注解Annotation:给计算机看的。使用方法:@注解名称功能分类编写文档:通过代码里标识的注解生成文档【生成文档】代码分析:通过注解对代码进行分析【使用反射】编译检查:通过代码了表示的注解让编译器能够实现基本的编译检查【Override】JDK内置注解@Override:检测该方法是否是继承父类(接口)@Deprecated:将该注解标注的内容,表示已过时@SuppressWar

2020-09-21 21:50:19 89

原创 JAVA语言-语言基础-反射

反射:框架设计的灵魂。反射:将类的各个部分封装为其他对象,这就是反射机制。

2020-09-20 22:39:06 64

原创 Spring boot入门简介

2020-09-18 21:07:17 53

原创 二叉树和递归

二叉树有着天然的递归结构。递归两个核心:递归终止条件与递归过程。讲解104:二叉树深度226:翻转二叉树题目104,111;226,100,101,222,110;

2020-09-18 09:16:55 96

原创 网络层-2

路由网络畅通的条件静态路由ICMP协议网络畅通的条件能去能回。沿途的路由器必须知道到目标网络下一跳给哪个接口。沿途的路由器必须知道到源网络下一跳给哪个接口。静态路由由管理员告诉路由器,到那些没有直连的网段下一跳应该走哪个接口。ICMP协议ICMP(Internet Control Message Protocol):网际控制报文协议。主要用来报告网络是否故障。为了提高IP数据包交付成功的机会。报文类型:询问报文和差错报告报文。返回差错报告报文时,把数据删除,留下8字节里面说明是哪种类型的

2020-09-16 11:32:22 102

原创 网络层-1

目录网络层功能目的网络层两种服务虚电路数据报服务两种服务对比IP协议虚拟互联网网络互连的设备网络层的4个协议IP地址IP层次结构IP地址分类特殊的几个地址子网掩码子网划分超网网络层功能目的如何将分组从源端沿着网络路径送达目的端。网络层两种服务产生两种服务的原因是有“可靠交付到底是由网络层负责还是传输层负责”而来。认为由网络层负责的,产生了虚电路服务;认为由端(传输层)负责的产生了数据报服务。现在用的是数据报服务。虚电路数据报服务所有分组可能沿着不同路径传送。数据包本身是有编号的,因此到达目

2020-09-14 20:07:47 80

原创 数据链路层

数据发送模型

2020-09-08 08:55:34 83

原创 物理层

物理层主要任务如何在传输媒体上传输数据比特流。确定与传输媒体的接口的一些特性。机械特性:接口形状,大小,引脚数目电器特性:电压功能特性:多少电压代表1,多少代表0过程特性...

2020-09-07 16:54:33 89

原创 计算机网络概述

主机间通信方式Client/Server客户端/服务器模式peer to peer (p2p)对等连接模式。计算机既是客户端又是服务器因特网数据交换方式电路交换(交换机建立专用的实时线路)适合于数据量大的实时性传输分组交换(将完整报文拆解成多个分组传输)高效,灵活。但可能存在延迟与网络开销报文交换:报文一般比分组长的多,交换时延长网络分类**按作用范围:**广域网、城域网、局域网、个人区域网局域网:自己购买设备,自己维护,带宽固定100M 距离100m以内广域网:花钱买服务**

2020-09-04 18:59:14 67

原创 栈队列相关问题解决办法

链表相关问题套路题目汇总实例展示套路常见问题:括号匹配,题目汇总20,150,71;实例展示20,:括号匹配问题

2020-08-20 10:56:56 491

原创 数据库MySQL-事务

事务定义Mysql如何管理事务数据准备事务控制回滚 rollback手动开启事务定义事务是一个最小的不可分割的工作单元,事务能够保证一个业务的完整性。示例;转账有a-钱 b+钱两个动作,两个语句必须都成功才算转正成功。事务给我们提供了一个返回的机会。Mysql如何管理事务MySQL默认是开启事务的(自动开启)默认事务开启的作用:当我们去执行一个sql语句的时候,效果会立即体现出来。自动提交:autocommit=1手动提交:commit;事务回滚:rollback;数据准备事

2020-08-14 16:19:30 113

原创 链表相关问题解决办法

链表相关问题套路题目汇总实例展示套路一句话总结:穿针引线(操作next指针)题目汇总实例展示206,92

2020-08-13 10:33:52 171

原创 数据库MySQL-连接查询

SQL的4种连接查询数据准备内连接外连接左连接右连接外连接数据准备创建两个表:person和cardperson:card:内连接inner join 或者 joinselect * from person inner join card on person.cardID = card.id;内联查询,其实就是两张表中的数据,通过某个字段相等,查询出相关记录。外连接左连接左连接:left join 或者 left outer joinselect * from perso

2020-08-12 17:32:46 174

原创 数据库MySQL-查询练习3

26.查询’计算机系’与’电子工程系’ 不同职称的教师的name和rof求并集unionSELECT * FROM teacher WHERE t_depart = '计算机系' AND t_rof NOT IN (SELECT t_rof FROM teacher WHERE t_depart = '电子工程系')UNIONSELECT * FROM teacher WHERE t_depart = '电子工程系' AND t_rof NOT IN (SELECT t_rof FROM teac

2020-08-12 17:00:48 2093

原创 数据库MySQL-查询练习2

11.查询每门课的平均成绩关键字 avg()单门课: SELECT c_no,AVG(sc_degree) FROM SCORE where c_no = '3-105';每门课:SELECT c_no,AVG(sc_degree) FROM SCORE GROUP BY c_no;

2020-08-12 16:28:48 3827

原创 数据库MySQL-查询练习

查询练习数据准备查询练习数据准备学生表Student学号,姓名,性别,出生年月日,所在班级课程表Course课程号,课程名称,教师编号成绩表Score学号,课程号,成绩教师表Teacher教师编号,教师名字,教师性别,出生年月日,职称,部门查询练习1.查询student表的所有记录select * from student;//*号表示所有2.查询student表中所有记录的s_name,s_sex,s_class列SELECT s_no,s_name,s_c

2020-08-11 11:41:26 1772

原创 数据库MySQL-数据表设计(三大范式)

提前说明:不一定必须满足范式,从实际开发角度考虑。第一范式1NF数据表中的所有字段都是不可分割的原子值。字段值还可以继续拆分的,就不满足第一范式。第二范式2NF必须是在满足第一范式的前提下。第二范式要求,除主键外的每一列都必须完全依赖于主键。如果要出现不完全依赖,只可能发生在联合主键的情况下。如果不依赖,常拆表。第三范式3NF必须满足第二范式前提下。除开主键列的其他列之间不能传递依赖。...

2020-08-10 15:44:06 164

原创 数据库MySQL-建表约束

MySQL建表约束主键约束能够唯一确定一张表中的一条记录,也就是通过给某个字段添加约束,就可以使得该字段不重复且不为空。create table user( id int primary key, name varchar(20));

2020-08-10 15:13:01 442

原创 数据库MySQL-基本操作(增删改查)

基本常见操作(增删改查)1.建表create TABLE pet(name VARCHAR(20),owner VARCHAR(20),specise VARCHAR(20),sex CHAR(1),brith DATAE,death DATE );2.增加INSERTeg: INSERT INTO pet VALUES(‘kk’,‘cc’,‘dog’,‘1’,‘1998-8-2’,null);3.删除DELECTeg: delect from pet where name=‘k

2020-08-07 22:33:18 109

原创 JAVA语言-并发/多线程-并发编程基础-线程池

线程池概念使用概念线程池:其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。合理利用线程池能够带来三个好处:降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。提高线程的可管理性。可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗

2020-08-03 21:20:53 125

原创 查找表相关问题解决办法

查找表相关问题set和mapset和map不同底层实现set和map查找相关的问题一般离不开set和map的使用。(349,350)熟悉set、map的使用,(242,202,290,205,451)set和map不同底层实现哈希表实现的在查找、删除上可达到O(1),但是失去了数据的有序性,而平衡二叉树实现的可以保留这种性质。查找表:1,15,18,16...

2020-08-03 11:11:56 120

原创 数组常见相关问题的解决思路

问题的解决一般离不开遍历、交换、双索引(快慢指针、对撞指针、滑动窗口)。经典习题:283,75,88,215,(167,125,344,345,11)(209,3,438,76)

2020-07-24 22:49:46 252

原创 算法面试涉及范围

2020-07-24 22:47:40 72

原创 JAVA语言-并发/多线程-并发编程基础-线程状态与线程通信

线程状态状态总结Timed Waiting(计时等待)Blocked (锁阻塞)Waiting(无限等待)线程通信等待唤醒机制生产者消费者案例状态总结线程状态导致状态发生条件NEW(新建)线程刚被创建,但是并未启动。还没调用start方法。Runnable(可运行)线程可以在java虚拟机中运行的状态,可能正在运行自己代码,也可能没有,这取决于操作系统处理器。Blocked(锁阻塞)当一个线程试图获取一个对象锁,而该对象锁被其他的线程持有,则该线程进入Blocked

2020-07-24 19:47:10 112

原创 JAVA语言-并发/多线程-并发编程基础-线程安全

线程安全线程安全问题描述(解决办法)线程同步方式一: 同步代码块方式二: 同步方法方式三: Lock锁线程安全问题描述我们通过一个案例,演示线程的安全问题:电影院要卖票,我们模拟电影院的卖票过程。实现多个窗口同时卖 “葫芦娃大战奥特曼”这场电影票(多个窗口一起卖这100张票)。public class Ticket implements Runnable {private int ticket = 100;/** 执行卖票操作*/@Overridepublic void run() {

2020-07-23 12:25:22 114

原创 JAVA语言-并发/多线程-并发编程基础-创建多线程方式

创建多线程创建线程的第一种方式(继承Thread类)创建线程的第一种方式(继承Thread类)Java中通过继承Thread类来创建并启动多线程的步骤如下:定义Thread类的子类,并重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务,因此把run()方法称为线程执行体。创建Thread子类的实例,即创建了线程对象调用线程对象的start()方法来启动该线程public class MyThread extends Thread {//定义指定线程名称的构造方法

2020-07-22 20:49:06 83

原创 JAVA语言-并发/多线程-并发编程基础-基本概念

并发编程基础并发与并行进程与线程线程调度并发与并行并发:指两个或多个事件在同一个时间段内发生。并行:指两个或多个事件在同一时刻发生(同时发生)。在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每一时刻只能有一道程序执行,即微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那是因为分时交替运行的时间是非常短的。而在多个 CPU 系统中,则这些可以并发执行的程序便可以分配到多个处理器上(CPU),实现多任务并行执行,即利用每个处理器来

2020-07-21 12:59:07 110

空空如也

空空如也

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

TA关注的人

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