自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL

数据库存储引擎数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(Table Type,即存储和操作此表的类型)。MyISAM与InnoDB 的区别https://blog.csdn.net/qq_3564

2021-09-02 16:07:44 296

原创 spring基于注解的IOC及IOC的案例

spring中ioc的常用注解 基于注解的 IoC 配置和 xml 配置要实现的功能都是一样的,都是要降低程序间的耦合。只是配置的形式不一样曾经XML的配置;<bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl"scope=""init-method="" destroy-method=""><property n...

2021-08-11 17:13:33 155

原创 Spring

spring 是什么 Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IOC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的 Java EE 企业应用开源框架。spring...

2021-08-11 01:41:45 149

原创 mybatis中的延迟加载、缓存、注解开发

延迟加载问题:在一对多中,当我们有一个用户,它有100个账户。在查询用户的时候,要不要把关联的账户查出来在查询账户的时候,要不要把关联的用户查出来在查询用户时,用户下的账户信息应该是,什么时候使用,什么时候查询的在查询账户时,账户的所属用户信息应该是随着账户查询时一起查询出来。什么是延迟加载在真正使用数据时才发起查询,不用的时候不查询。按需加载(懒加载)什么是立即加载不管用不用,只要一调用方法...

2021-08-10 19:21:38 91

原创 Mybatis中的连接池和事务、SQL深入

连接池:我们在实际开发中都会使用连接池,因为它可以减少我们获取连接所消耗的时间。Mybatis中的连接池:mybatis连接池提供了3种方式的配置:配置的位置: 主配置文件SqlMapConfig.xml中的dataSource标签,type属性就是表示采用何种连接池方式。type属性的取值:POOLED:采用传统的javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实现UNPOOLED...

2021-08-09 23:29:14 121

原创 Mybatis的参数和输出结果封装

一、Mybatis的参数parameterType输入类型: 1.简单类型 2.传递pojo对象 Mybatis使用ognl表达式解析对象字段的值,#{}或者${}括号中的值为pojo属性名称。OGNL表达式:Object Graphic Navigation Language对象 ...

2021-08-09 01:22:59 303

原创 mybatis

Java程序都是基于实体类的,例如user实体类(实体类中写属性)。操作数据库基于dao操作

2021-08-07 17:56:00 92

原创 反射概念及使用

1、反射能够分析类能力的程序称为反射。反射机制可以用来: 在运行时分析类的能力; 在运行时检查对象; 实现泛型数组操作代码; 利用Method对象,这个对象很像C++中的函数指针。Reflection 是 Java被视为动态语言(运行时改变其结构)的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法加载完类之后,在对内存的方法去中就产生了一个Class类...

2021-08-04 14:11:39 91

原创 字节码技术-Synchronized

Synchronized:对对象进行加锁操作public class Demo5 { public static void main(String[] args) { int i = 10; Lock lock = new Lock(); synchronized (lock) { System.out.println(i); } }}class Lock{}对应的字节码:Code:stack=2, locals=5, args_size=...

2021-08-03 11:43:15 137

原创 数据控制语言DCL

数据控制语言DCL:SQL分类:1.DDL:操作数据库和表2.DML:增删改表中数据3.DQL:查询表中数据4.DCL:管理用户,授权DBA:数据库管理员DCL:管理用户,授权1.管理用户1.添加用户:语法:CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';...

2021-07-21 10:04:52 58

原创 事务、事务特征、隔离级别

事务1.事务的基本介绍1.概念:如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。2.操作:1.开启事务: start transaction;2.回滚:rollback;3.提交:commit;3.例子:CREATE TABLE acco...

2021-07-21 10:04:05 69

原创 多表查询:内连接、外连接和子查询

查询语法:select列名列表from表名列表where....准备sql# 创建部门表CREATE TABLE dept(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(20));INSERT INTO dept (NAME) ...

2021-07-20 22:54:07 518

原创 数据库:约束、多表之间的关系、三大范式

约束概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性。分类:1.主键约束:primary key2.非空约束:not null3.唯一约束:unique4.外键约束:foreign key* 非空约束:not null,某一列的值不能为null1.创建表时添加约束CREATE TABLE stu(id...

2021-07-20 17:30:11 344

原创 SQL分类、操作数据库、数据表和数据

SQL通用语法:1.SQL 语句可以单行或多行书写,以分号结尾。2.可使用空格和缩进来增强语句的可读性。3.MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。4.3 种注释:单行注释: -- 注释内容(--后面有空格) 或 # 注释内容(mysql 特有) 多行注释: /* 注释 */SQL分类1.DDL(Data Definitio...

2021-07-19 21:10:36 130

原创 MySQL软件的启动、登录和退出

常见数据库软件:Oracle、MySQL、Microsoft SQL Server、DB2等启动MySQL: cmd->services.msc打开服务窗口 管理员方式打开cmd: 启动MySQL服务:net start mysql 关闭MySQL服务:net stop mysql登录MySQL: mysql [-hIP地址] -uroot -p密码退出...

2021-07-19 11:09:39 168

原创 操作系统实验:进程间通信

一.实验目的:Linux的进程通信机构(IPC)允许在任意进程之间大量的交换数据。本实验的目的是了解和熟悉Linux支持的消息通信机制、共享存储区机制及信息量机制。二.实验要求:阅读Linux系统的msg.c,sem.c和shm.c等源码文件,熟悉Linux中的三种通信机制。三. 实验内容:消息的创建、发送和接受。(1)使用系统调用msgget( ),msgsnd( ),msgrev( )及msgctl()编制一长度为1K的消息的发送和接收程序。(2)观...

2021-06-26 23:02:29 3547

原创 操作系统实验: 进程管理

一.实验目的:1. 加深对进程概念的理解,明确进程与程序的区别。2.进一步理解并发执行的实质。3.分析进程争用系统资源的情况,学习解决进程互斥的方法。4.了解Linux中进程通信的基本方法。二.实验要求:在linux系统上用C语言编写程序,分析程序运行结果及原因,加深对进程管理的理解。实验内容:进程的创建编写一段程序,使用系统调用fork() 创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,子...

2021-06-26 22:47:38 10737 2

原创 操作系统实验:银行家算法

一.实验目的:银行家算法是一种最有代表性的避免死锁的算法。通过编写一个模拟动态资源分配的银行家算法程序,进一步深入理解死锁、产生死锁的必要条件、安全状态等重要概念,并掌握避免死锁的具体实施方法。二.实验要求:程序可以针对不同进程的请求进行判断,并决定是否满足其需求。算法程序需要设计合理的数据结构,对资源情况、进程相关数据进行存储。三. 实验内容:在避免死锁方法中允许进程动态地申请资源,用户请求分配资源时,首先对用户提出的请求进行合法性检查...

2021-06-26 22:31:49 6312 3

原创 操作系统实验:读者写者问题

一.实验目的:通过实现读者写者问题理解进程及信号量的概念二.实验要求:创建一个控制台进程,此进程包含n个线程。用这n个线程来表示n个读者或写者。每个线程按相应测试数据文件的要求进行读写操作。用信号量机制分别实现读者优先和写者优先的读者-写者问题。三.实验内容:利用多线程模拟读者与写者对临界区的互斥访问。读者和写者问题的读写操作限制:可以有一个或多个数量的读进程同时读这个文件;一次只有一个写进程可以写文件;若一个写进程正在写文件,则禁止任何读进程读文件;即读读允许、读写互斥、写写互斥.

2021-06-26 22:13:51 8922 2

原创 函数式编程思想、Lambda表达式及实例

面向对象的思想: 做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成事情. 函数式编程思想: 只要能获取到结果,谁去做的,怎么做的都不重要,重视的是结果,不重视过程

2021-06-17 01:20:39 386

原创 进程间通信、等待唤醒机制

线程间通信概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个 是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。多个线程在处理同一个资源,并且任务不同时,需要线程通信来帮助解决线程之间对同一个变量的使用或操作。 就是多个线程在操作同一份数据时,避免对同一共享变量的争夺。也就是我们需要通过一定的手段使各个线程能有效的利用资源。而这种手段即 —— 等待唤醒..

2021-06-16 22:33:23 175

原创 线程池及代码实现

线程池:其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作, 无需反复创建线程而消耗过多资源。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。 *//*线程池:JDK1.5之后提供的java.util.concurrent.Executors :线程池的工厂类,用来生成线程池Executors类中的静态方法: static ExecutorService newFixedThreadPool(int nThreads)创建一个.

2021-06-16 11:19:20 194

原创 线程的状态

线程共六种状态,它们之间可以相互转换:多个线程一起抢夺cpu执行权,抢到进入RUNNABLE状态,没抢到进入阻塞状态BLOCKED。RUNNABLE和BLOCKED之间可以相互转换。阻塞状态具有CPU的执行资格,而休眠和无限等待状态都是主动放弃CPU的执行资格。运行状态遇到sleep(long)和wait(long)进入休眠状态,计时等待;而wait()进入无限等待。Waiting无限等待状态等待唤醒案例:线程之间的通信创建一个顾客线程(消费者):告知老板要的包子的...

2021-06-15 22:06:28 106

原创 线程安全问题解决方法

线程安全问题如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。我们通过一个案例,演示线程的安全问题:电影院要卖票,我们模拟电影院的卖票过程。假设要播放的电影是“葫芦娃大战奥特曼”,本次电影的座位共100个(本场电影只能卖100张票)。我们来模拟电影院的售票窗口,实现多个窗R同时卖“葫芦娃大战奥特曼"这场电影票(多个窗口一起卖这100张票)需要窗口,采用线程对象来模拟﹔需要票,Runnable

2021-06-15 16:31:18 1069 1

原创 创建多线程程序

创建多线程程序的第一种方式:创建Thread类的子类java.lang.Thread类:是描述线程的类,我们想要实现多线程程序,就必须继承Thread类实现步骤:1.创建一个Thread类的子类2.在Thread类的子类中重写Thread类中的run方法,设置线程任务(开启线程要做什么?)3.创建Thread类的子类对象4.调用Thread类中的方法start方法,开启新的线程,执行run方法void start()使该线程开始执行;Java虚拟机调用该线程的run方法。结果是两个线程并发地运行

2021-06-14 11:57:45 2118 2

原创 并发、并行、单线程、多线程的区别

并行和并发的区别并发:一个处理器可以同时处理多个任务,这是逻辑上的同时发生。并行:多个处理器同时处理多个不同的任务,这是物理上的同时发生。

2021-06-14 11:08:15 2071 1

空空如也

空空如也

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

TA关注的人

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