自定义博客皮肤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)
  • 收藏
  • 关注

原创 SSM框架整合

整合SSM环境要求环境: IDEA MySQL 5.7.19 Tomcat 9 Maven 3.6 要求: 需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识; 数据库环境创建一个存放书籍数据的数据库表CREATEDATABASE `ssmbuild`;USE `ssmbuild`;DROPTABLEIF EXISTS `books`;CREATETABLE`bo...

2022-05-24 00:08:01 108

原创 SpringMVC

MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)

2022-05-19 20:55:12 149

原创 Spring

Spring是一个轻量级的、非入侵式的框架!(开源、免费)控制反转(IOC),面向切面编程(AOP)支持事务的处理,对框架整合的支持导包组成扩展Spring Boot 一个快速开发的脚手架基于SpringBoot可以快速的开发单个微服务 约定大于配置Spring Cloud 基于SpringBoot实现IOC理论推导控制反转IOC是一种设计思想,DI(依赖注入)是实现IOC的一种方法。在没有IOC的程序中,我们使用面...

2022-05-07 22:39:16 303

原创 Mybatis

1.1、什么是MybatisMyBatis 是一款优秀的持久层框架它支持定制化SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO (Plain Old Java Objects,普通老式Java对象)为数据库中的记录。MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundatio

2022-04-16 22:08:35 1764

原创 JDBC操作事务

JDBCSUN公司为了简化开发人员的(对数据库的统一)操作,提供了一个(java操作数据库的)规范,俗称JDBC这些规范的实现由具体的厂商去做~对于开发人员来说,我们只需要掌握JDBC接口的操作即可!java.sqljavax.sql还需要导入一个数据库驱动包 mysql-connector-java-5.1.47.jarJDBC操作事务==要么都成功,要么都失败==ACID原则原子性:要么全部成功,要么全部失败一致性:总数不变隔离性:多个进程互不干扰

2022-04-15 22:48:44 112

原创 数据库三

索引Msql官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构。索引的分类在一个表中,主键索引只能有一个,唯一索引可以有多个主键索引(primary key) 唯一的标识,主键不可重复,只能有一个列作为主键 唯一索引 (unique key) 避免重复的列出现,可以重复,多个列都可以标示为唯一索引 常规索引(key/index) 默认的 index 或者key关键字来设置 全文索引(FullText) 在特定的数据库引擎下才有,myi

2022-04-14 21:49:17 2494

原创 数据库二

MySQL常用函数MySQL常用函数SELECTABS(-8); -- 绝对值SELECTCEILING(9.4) ;-- 向上取整SELECTFLOOR(9.4);-- 向下取整SELECTRAND(); -- 返回一个0~1之间的随机数SELECTSIGN(-10); -- 判断一个数的符号,0 返回0 负数返回-1 正数返回1-- 字符串函数SELECTCHAR_LENGTH('哈哈'); -- 字符串长度SELECTCONCAT('我','爱','...

2022-04-12 22:56:04 64

原创 数据库一

数据库(DB , DataBase)概念:安装在操作系统(window,Linux,mac ...)之上的数据仓库 软件作用:存储数据,管理数据数据库分类关系型数据库:(SQL) MySQL,Oracle,SqlServer, 通过表和表之间,行和列之间的关系进行数据的存储非关系型数据库: (No SQL) Not Only SQL Redis,MongDB 以对象进行存储,通过对象的自身属性来决定DBMS(数据库管理...

2022-04-10 20:02:05 551

原创 注解和反射

注解Annotation是从JDK5.0开始弓|入的新技术.Annotation的作用:不是程序本身,可以对程序作出解释.(这一点和注释(comment)没什么区别)可以被其他程序(比如:编译器等)读取.Annotation的格式:注解是以"@注释名"在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(value="unchecked").Annotation在哪里使用?可以附加在package , class , method

2022-04-09 20:39:36 440

原创 网络编程

计算机网络:计算机网络是指将地理位置不同的具有独立功能的多台计算机及外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程的目的:传播交流信息,数据交换,通信达到这个效果需要什么:准确的定位网络上的一台主机 IP地址 如:192.168.16.124 端口,定位到这个计算机上的某个资源 传输数据 ...

2022-04-09 20:12:19 43

原创 生产者 消费者问题

应用场景:生产者和消费者问题假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费.如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止.如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,直到仓库中再次放入产品为止.这是一个线程同步问题,生产者和消费者共享同一个资源,并且生产者和消费者之间相互依赖,互为条件.对于生产者:没有生产产品之前,要通知消费者等待.而生产了产品之后,又需要

2022-04-08 13:31:58 143

原创 多线程六:Lock锁和线程池

Lock锁从JDK 5.0开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步。同步锁使用Lock对象充当。java.util.concurrent.Iocks.L ock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对L ock对象加锁,线程开始访问共享资源之前应先获得l ock对象ReentrantL ock类实现了Lock,它拥有与synchronized相同的并发性和内存语义,在实现线程安全的控制中

2022-04-07 21:32:30 436

原创 多线程五:同步机制和死锁

线程同步机制并发:同一个对象被多个线程同时操作线程同步其实就是一种等待机制 ,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程再使用 由于同一进程的多个线程共享同一块存储空间,在带来方便的同时也带来了访问冲突问题,为了保证数据在方法中被访问时的正确性,在访问时加入锁机制synchronized,当一个线程获得对象的排它锁,独占资源,其他线程必须等待,使用后释放锁即可. 存在以下问题:一个线程持有锁会导致其他所有需要此锁的线程挂起;在.

2022-04-07 21:27:41 252

原创 多线程四:线程优先级和守护线程

线程优先级线程的优先级用数字表示,范围从1~10.Thread.MIN PRIORITY = 1;Thread.MAX PRIORITY = 10;Thread.NORM PRIORITY = 5;使用以下方式改变或获取优先级getPriority() . setPriority(int xxx)//先设置优先级,再启动t4. setPr iority (Thread . MAX_ PRIORITY); //MAX_ PRIORITY=10t4.start()

2022-04-07 21:14:59 254

原创 多线程三:线程状态和线程方法

线程状态线程五大状态线程方法方法 说明 setPriority(int newPriority) 更改线程的优先级 static void sleep(long millis) 在指定的毫秒数内让当前正在执行的线程休眠 void join() 等待该线程终止 static void yield) 暂停当前正在执行的线程对象,并执行其他线程 void interrupt() 中断线程,别用这个方式 bo...

2022-04-07 21:13:10 88

原创 多线程二:静态代理模式和Lamda表达式

静态代理模式真实对象和代理对象都要实现同一个接口代理对象要代理真实对象public class StacticProxy { public static void main (String[] args) { weddingCompany weddingCompany = new WeddingCompany (new You() ) ; weddingCompany . HappyMarry() ; ...

2022-04-07 20:54:12 52

原创 多线程一:继承Thread类和实现Runnable接口

多线程程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。进程是执行程序的一次执行过程,他是一个动态的概念。是系统资源分配的单位。通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的单位。注意:真正的多线程是指有多个CPU,即多核,如服务器。如果是模拟出来的多线程,即一个CPU的情况下,在同一个时间点,CPU只能执行一个代码,因为切换的很快,所有会有同时执行的错觉。核心概念线程就是独立的执行路径

2022-04-07 20:30:58 288

原创 异常

异常指程序运行中出现的不期而至的各种状况,如:文件找不到 、非法参数、网络链接失败等。异常发生在程序运行期间,它影响了正常的程序执行流程。 public class test {public static void main(String[] args) {int a=1;int b=0;System.out.println(a/b);}}Exception in thread "main" java.lang....

2022-04-06 20:46:54 88

原创 抽象类-接口-内部类

抽象类abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类。抽象类中可以没有抽象方法,但是有抽象方法的类一 定要声明为抽象类。抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的。子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类。//abstract抽象类:类 extends 单继承 (接口可以多...

2022-04-06 17:44:12 44

原创 封装-继承-多态

程序设计要追求”高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。封装(数据的隐藏):通常, 应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。主要特征:属性私有,get/set。Get方法:获得这个属性。Set方法:给这个属性设置值。package com.oop.DEMO4; //类public class Student<id> { privat

2022-04-06 17:14:56 43

原创 面向对象

Java的核心思想就是OOP面向过程&面向对象面向过程思想步骤清晰简单,第一步做什么,第二步做什么....面对过程适合处理一些较为简单的问题面向对象思想物以类聚, 分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。面向对象适合处理复杂的问题,适合处理需要多人协作的问题!对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具

2022-04-06 17:03:26 30

原创 数组

数组数组是相同类型数据的有序集合,数组索引从0开始。数组定义语法:Datatype[] array=new datatype[arraySize];获取数组长度:arrays.length数组初始化静态初始化: 创建 + 赋值int[] a = {1,2,3};Man[] mans = {new Man(1,1),new Man(2,2)};动态初始化: 包含默认初始化 默认值为0Int[] a = new int[2]; a[0]=1; ...

2022-04-06 15:34:41 261

原创 程序结构和方法

JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。顺序结构是最简单的算法结构。选择结构:If单选择结构 ,If多选择结构,嵌套的if结构If语句至多有一个else语句饿,else语句再所有的else if语句之后。If语句可以有若干个else if语句,他们必须再else语句之前。一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行。Switch多选择语句Switch case语句判断一个变量与一系列值中.

2022-04-06 15:34:12 143

原创 Scanner对象和包机制

包机制为了更好地组织类, Java 提供了包机制,用于区别类名的命名空间。包语句的语法格式为:package pkg1[. pkg2[. pkg..]];一般利用公司域名倒置作为包名;为了能够使用某-个包的成员,我们需要在Java程序中明确导入该包。使用"import"语句可完成此功能import package1[. package2..]. (classname|*);javadoc命令是用来生成自己API文档的命令行 Javadoc 参数 Java文件..

2022-04-06 15:33:50 397

原创 变量与运算符

Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。数据类型 变量名=值;可以使用逗号隔开来声明多个同类型变量。常量:初始化后不能在改变值,一般使用大写字符局部变量:必须声明和初始化值实例变量:从属于对象;如果不自行初始化,这个类型的默认值 0布尔值:默认是false除了基本类型,其余的默认值都是null注意事项:每个变量都有类型,类型可以是基本类型,也可以是引用类型。变量名必须是合法的标识符。变量声明是一条完整的语句, 因此每一个声明都必须

2022-04-06 15:33:31 42

原创 基本数据类型和数据类型转换

Java中的注释有三种:单行注释:只能注释一行文字 //注释多行注释:可以注释一段文字 /* 注释 */文档注释: /** 注释 */Java所有的组成部分都需要名字。类名、变量名以及方法名都被成为标识符。标识符注意点所有的标识符都应该以字母,美元符$、或者下划线_开始首字符可以是字母,美元符$、下划线_或者数字的任何字符组合不能用关键字作为变量名或方法名标识符是大小写敏感的合法标识符举例:age、$salary...

2022-04-06 15:33:09 39

空空如也

空空如也

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

TA关注的人

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