自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mybatis的二级缓存

二级缓存的使用步骤

2022-05-17 16:14:44 178

原创 NIO AIO

#NIO的服务端开发流程:NIO的客户端编程 @Test public void servi(){ try { ServerSocketChannel serverSocketChannel = ServerSocketChannel.open (); serverSocketChannel.bind (new InetSocketAddress (8893)); System.out.printl

2022-05-11 12:12:18 190

原创 线程的优势和进程的对比

# 线程带来的好处有以下几点 一个进程中可以同时存在多个线程 让进程具备多任务并行处理能力 同进程下的各个线程之间可以共享进程资源 (同进程内的多线程通信十分简单高效) 更轻量与高效 线程带来的坏处有以下几点 因为进程资源共享,所以会产生资源竞争,需要通过锁机制来协同 当进程中的一个线程奔溃时,会导致其所属进程的所有线程奔溃(一般游戏的用户设计不会采用多线程方式) 线程与进程的对比 进程是最小的资源(包括内存、打开的文件等)分配单位,线程是最

2022-05-07 13:44:55 1283

原创 Linux知识大总结

常用目录的介绍常用命令查看命令: ls -a -l 同等于 ll是遍历当前所在的路径 ls 是显示当前目录下的内容pwd 表示当前位置cd . / cd …放回当前路径 . 表示当前 / 放回上一级目录 … 表示上一级目录不已后缀名来区分文件文件类型chmod 改变文件权限文字和数字两种...

2022-05-05 22:11:35 1026

原创 反射知识大总结

创建Class的三种方式declaredFields是获取当前运行时类声明的所有属性Fileds要看限定符的除了获取构造器时时当前类的声明为public的构造器(获取父类的构造器没有实际意义)获取运行时类的方法...

2022-04-25 20:33:43 133

原创 java网络知识大归纳

1:通过IP来识别是哪台计算机(唯一标识Interner上的计算机) 通过端口号来判断是计算机上的那个软件2.提供网络通信协议:TCP/IP协议127.0.0.1 或者localhost都表示本机服务器ip在java中使用InetAddress来一个TCP的案例吧设计一个服务端和一个客户端用客户端给服务端发一条消息package com.class4.class4_24;import org.junit.Test;import java.io.ByteArrayOutpu.

2022-04-24 23:54:16 1195

原创 JVM垃圾回收

垃圾回收原理GC (Garbage Collection:即垃圾回收)的基本原理:将内存中不再被使用的对象进行回收,GC中用于回收的方法称为收集器,由于GC需要消耗一些资源和时间,Java在对对象的生命周期特征进行分析后,按照新生代、老年代的方式来对对象进行收集,以尽可能的缩短GC对应用造成的暂停● 对新生代的对象的收集称为minor GC● 对老年代的对象的收集称为Full GC● 程序中主动调用System.gc()强制执行的GC为Full GC不同的对象引用类型, GC会采用不同的方法进行回

2022-04-24 12:16:30 115

原创 运行时数据区域

Java的内存布局介绍Java的内存布局分为5大块,分别是堆区、方法区、虚拟机栈、本地方法栈、程序计数器按照线程是否共享:堆区和方法区是线程共享的,创建进程就创建该区域虚拟机栈、本地方法栈、程序计数器是线程私有的,创建线程时该区域才会产生关注维度:区域作用、生命周期、是否是线程共享、异常(OOM)程序计数器作用:程序计数器是内存中一块较小的内存空间,主要是用来表示当前线程所执行的字节码的行号指示器。字节码解释器工作时通过计数器的值来选取下一个需要执行的字节码指令,分支、循环、跳转、异常等功能

2022-04-24 12:12:08 100

原创 JVM(java虚拟机)

JVM基础知识Java的跨平台性Java中的跨平台的特征,指的是Java程序能够实现跨平台,而不是JVM,JVM是用C/C++开发的,是编译后的机器码,是不能跨品台,不同的平台需要安装不同版本的JVMJava程序经过编译,可以在任何平台上执行,仅仅需要JVM这一个中间层,来做不同平台的环境差异的兼容,可以让Java程序在不同平台的运行,真正实现”一次编码,到处运行“的目的JVM概念JVM即Java Virtual Machine,Java虚拟机JVM是Java的核心和基础,在Java编译器和O

2022-04-17 16:04:04 944

原创 线程间通信

线程通信方法Java中在Object类提供了wait\notify\notifyall等方法,这些方法就可以实现线程间通信,因为Object是所有了的基类,因此所有的对象都具有线程间通信的方法void wait() :调用一个对象的wait方法,会导致当前持有该对象锁的线程等待,直到该对象的另一个持有锁的线程调用notify/notifyall唤醒void wait(long timeout):除了和wait相似,还具有超过定时的超时时间,也会自动唤醒void wait(long timeout,

2022-04-16 15:04:21 536

原创 线程回顾(可以无聊了看一看回顾总结)

1.线程的生命周期 ,方法新建就绪运行阻塞死亡new , join , wait , sleep , stop 等2 .同步监视器 : 锁的对象共享数据 ; 多线程下要共享的数据使用关键字synchronized(“这里是同步监视器”){这里是对共享数据的操作}3.sleep 和 wait 的区别定义的类的位置不同 : Thread 中 的sleep Object 中的wait程序中的位置不同 :sleep 在任何位置 wait必须在同步代码块或者同步.

2022-04-11 18:49:06 183

原创 SSM整合(Spring+SpringMVC+Mybatis)

第一步:整合dao层即持久层mybatis和spring整合,通过spring管理mapper接口,使用mapper的扫描自动扫描mapper接口在spring中进行注册第二步:整合service层service主要是进行业务逻辑处理通过spring来管理service接口,使用注解/配置形式将service中实例交给容器管理事务管理第三步:整合SpringMVC由于SpringMVC是属于spring一部分,不需要进行整合需求:获取user表中所有数据展示到页面依赖jar包sprin.

2022-04-09 18:14:30 946

原创 StringMVC使用Demo

SpringMVC使用Demo创建web项目SpringMVC依赖 <!--Spring MVC依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.2.RELEASE&lt

2022-04-09 18:09:36 545

原创 volatile关键字

在Java多线程下,为了姐姐线程并发问题,在语言内部引入了同步块Synchronize和volatile关键,volatile修饰的变量,线程在每次使用变量的时候,都会读取到最新值统计1秒中数据i++能加的次数; static volatile boolean flag = true; public static void main(String[] args) throws IOException { Thread thread = new Thread(new Run

2022-04-02 18:39:48 556

原创 Synchronized关键字

在多线程的并发情况下,提供的线程安全的解决方案,提供了线程同步的方式Synchronized的使用关键字Synchronized的使用可以修改代码块或者同步方法,确保多个线程在同一时刻,只能有一个线程处于方法或者同步代码块中,保证线程的可见性和互斥性 //修饰代码块 public void test1(Object obj) { synchronized (obj){ //do something } }Synchron

2022-04-02 18:37:01 348

原创 java数据结构与算法(第三天)

27. 移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。nums = [3,2,2,3], val = 3输出:2, nums = [2,2]解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2

2022-03-30 00:21:57 111

原创 java数据结构与算法(第二天)

704. 二分查找力扣题目链接(opens new window)给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不

2022-03-28 18:35:17 90

原创 SpringMVC运行原理

具体流程:第一步:用户发起请求request到前端控制器DispatcherServlet第二步:前端控制器请求处理映射器HandlerMapping查找Handler,可以根据注解、XML进行查找第三步:处理映射器向前端控制器返回映射结果处理器映射链HandlerExecutionChain对象,包含一个Handler处理器对象、多个HandlerInterceptor拦截器的对象第四步:前端控制器请求处理器适配器HandlerAdapter请求执行Handler第五步:处理器适配器执行Handler第.

2022-03-27 21:50:57 215

原创 Spring MVC介绍

JavaEE体系结构包括四层,从上到下分别是应用层、Web层、业务层、持久层。Struts和SpringMVC是Web层的框架,Spring是业务层的框架,Hibernate和MyBatis是持久层的框架。SpringMVC是一种基于Java,实现了Web MVC设计模式,请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦。基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,SpringMVC也是要简化我们日常Web开发。在Spring中给出的MVC

2022-03-27 21:41:26 670

原创 Spring和Mybatis的整合

按照JavaEE三层结构,controller、service、dao层在controller调用service在service调用dao层对象需求:通过id查询用户信息Spring和Mybatis的整合思路Mybatis通过SQLSessionFactoryBuilder类来创建SQLSessionFactory,通过SQLSessionFactory创建SQLSession,mapper都交给spring管理在Mybatis和Spring整合中,使用SQLSessionFactoryBe

2022-03-27 21:39:55 407

原创 多线程介绍(归纳)

线程和进程进程就是计算机中正在进行的一个独立的应用程序,进程是一个动态的概念必须是进行状态,如果一个应用没有启动,那就不是进程线程就是组成进程的基本单元,可以完成特定的功能,一个进程可以有多个线程组成进程和线程的区别:1、内存空间上的区别:进程是有独有的内存空间,每个进程之间是相互独立的,互不影响线程有共享的内存空间(也有私有空间)2、安全性进程是相互独立的,一个进程的奔溃不会影响到其他的进程,进程是安全线程存在内存空间共享,一个线程的奔溃可能会影响到其他的线程的执行,线程的安全是不如进程

2022-03-27 17:06:45 610

原创 AOP介绍

AOP介绍AOP(Aspect Oriented Programing)面向切面编程是通过预编译方式或者是运行期期间动态代理实现功能扩展而不用修改源代码通过AOP技术,实现一种通用的逻辑解耦,解决一些系统层面的问题,如日志,事务,权限等,从而实现高可用的可重用性和可维护性AOP的设计原理和思想AOP横向抽象技术的介绍pubic class User{ //添加用户方法 public void add(){ //添加逻辑 //修改源代码,添加日志功能 }}//扩展功能添加日志功能

2022-03-25 18:52:02 3622

原创 java数据结构与算法刷题(第一天)

我准备开启一个刷题系列 每天至少一道题,越多越好,可以和我一起,我会将题目在力扣的位置和解析写下,适合全阶段的java学习者,,与君共勉!1.1 力扣 203:题意:删除链表中等于给定值 val 的所有节点。示例 1:输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]示例 2:输入:head = [], val = 1输出:[]示例 3:输入:head = [7,7,7,7], val = 7输出:[]先去想!!解析:根据题意,我们要考

2022-03-25 15:11:41 98

原创 java进程

简介注:程序:代码进程 : 一个跑起来的程序线程: 进程中多个任务并发 : 1 打多并行 : 多对多如何查看自己电脑是几核的Runtime runtime = Runtime.getRuntime (); int i = runtime.availableProcessors (); System.out.println (i);创建线程的方法继承Thread 或者实现runnable接口Thread.currentThread ().getName () - 返回当

2022-03-24 01:08:35 629

原创 JDBC详解(持续更新 包看包会一条龙)

JDBCJDBC的5中连接方式第一种 使用driver第二种 使用class.forname来动态选择第三种 使用DriverManager第四种 使用Class.forname第五种使用properties文件进行填充ResultSetStatementpreparedStatement总结一下JDBCAPI封装一个JDCBCUtil工具类JDBC是一种连接JAVA和mysql的工具,后面又mybatis框架会使用到他所以兄弟们,学!JDBC的5中连接方式第一种 使用driver public

2022-03-22 23:10:46 1086

原创 mybatis动态sql

OGNLselect想要在mybatis中根据属性来查找(比如根据学生的姓名 , 学生的编号)原来需要在mapper接口中新写两个方法selectByname 和 selectByid十分麻烦~但是我们出现了十分方便的动态sql在mapper接口上用一个方法slectBynameOrid(Student student)在xml文件上就可以这样写 <select id="selectnewByidOrnewrong" parameterType="mybatis01.pojo.new

2022-03-21 23:46:46 843

原创 mybatis全局配置

全局配置<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <properties > <property n

2022-03-21 13:13:18 977

原创 Spring(DI)

DI(Dependency Injection)即依赖注入,对象之间的依赖由容器在运行期决定,即容器动态的将某个依赖注入到对象自重基于XML配置注入依赖有参构造函数注入依赖bean类实现有参构造函数public class Student { private Integer id; private String name; /** * 有参构造函数 */ public Student(Integer id, String name) {

2022-03-20 21:52:02 1199

原创 java8新特性 -- Stream

Java8中有两个非常有名的改进,一个是Lambda表达式,一个是Stream。而新增了stream流的特性,能够让用户以函数式的方式、更为简单的操纵集合等数据结构,并实现了用户无感知的并行计算。Stream介绍Stream是一个流,在Java.util.Stream包路径下,他的主要作用就是对集合数据进行查找过滤等操作。通俗解释就是一种高效且易用的数据处理方式。大数据领域也有一个Steam实时流计算框架,不过和这个可不一样。别搞混了。Stream和Collection的区别就是:Collection

2022-03-20 18:08:29 1861

原创 IO流中的设计模式

修饰器模式Decorator装饰器定义:装饰模式是在不必改变原类文件和不使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。注意其中的几点:● 不改变原类文件● 不使用继承● 动态扩展例子:原类的父类接口interface A{ void method();}原类class oldclass implements A{ @Override public void method(){ System.out.println("这是

2022-03-20 16:25:50 1837

原创 spring(IOC)

IOC介绍IOC是什么IOC(Inversion of Control)即“控制反转”,意味着将设计好的对象交给容器控制传统的Java程序的设计,直接在对象内部通过new形式创建对象,是程序主动去创建依赖对象,而IOC技术是专门一个容器来创建对象,IOC容器来控制对象的创建而不是显式的使用new对象的创建交给容器管理,这就是控制反转控制反转是通过容器来完成的,Spring中提供了这样一个容器,称之为IOC容器无论是创建对象,处理对象之间的依赖,对象的创建时间还是对象创建的数量,都是由Sprin

2022-03-19 14:21:05 219

原创 spring介绍

Spring是什么官网:https://spring.io/Spring框架是开源Java平台,是轻量级的框架主要特征:● 轻量:从大小与开销两方面而言spring都是轻量级● 非侵入式:Spring应用的对象不依赖于特定的Spring类● 控制反转(IOC):将对象的使用权交由spring管理,容器负责对于对象的生命周期进行管理,使用者要使用主动将对象传递给使用者,达到松耦合目的● 面向切面(AOP):Spring支持面向切面编程,被应用逻辑和系统服务分开,例如:事务、日志等● 容器:包含

2022-03-19 14:14:12 174

原创 IO流总结

File类方法:字节输入流FileInputStream构造函数设置为int是为了防止读取到-1时出现错误单个字节标准开发格式多字节开发标准字节输出流其中文件路径是已经创建好的了如果没有创建,需要创建一个FIle对象 判断是否为空然后先行创建覆盖和追加append : false代表覆盖,true 代表追加注意覆盖方式,无论如何都会覆盖内容 , 什么的不弄都会清空文件内容所以覆盖是十分危险的而追加就不会删除源文件中的内容,相比之下要安全很多创建未知文件

2022-03-15 15:26:48 85

原创 JDBC介绍

JDBC概念JDBC(Java Data Base Connection):数据库连接,一种标准的Java应用程序接口(Java API),用来连接Java编程语言和数据库常见的组件DriverManager:这个类是管理一系列数据库的驱动程序,用来匹配连接的数据的通信协议,识别JDBC下某个子协议的第一驱动程序将被用于建立数据库连接Driver:接口处理与数据库服务器通信,使用DriverManager管理各种数据库类型的对象,管理的是Driver类型的对象,也抽象与驱动程序对象相关的详细信息

2022-03-15 14:29:51 1658

原创 RandomAccessFile的使用

构建函数说明RandomAccessFile(String name, String mode)RandomAccessFile(File file, String mode)RandomAccessFile构造函数有两个参数,其中第一个参数都是表示文件路径,只是类型不同。另外,第二个参数指定的是mode,该参数是用来指定RandomAccessFile的访问模式,有4种值● “r”:以只读的方式打开,如果调用writer方法会抛出异常● “rw”打开以便读取和写入● “rws”:打开以便读取

2022-03-14 15:56:14 1638

原创 Mybatis(使用步骤)

第一步引入pom.xml中的包第二步建立一个和数据库中一模一样的类第三步编写全局配置文件mybatisConfig.xml不要忘了写一个resources的目录下面写这个全局配置文件 还要写一个mapper目录做准备第四步编写接口第五步在之前准备好哒mapper目录中编写一个和接口名字一模一样的.xml文件其中namespace要写接口的全路径第六步鼠标放在在接口名上使用ctrl + shift + t 来启动junit测试单元如图:注意:这个测试单元会在test

2022-03-12 18:27:50 744

原创 mybatis

mybatis配置详解全局配置文件:mybatisConfig.xml参考文档:https://mybatis.org/mybatis-3/zh/configuration.html#settingsproperties:读取外部资源这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置。例如: <properties resource="db.properties">

2022-03-12 18:05:50 451

原创 mysql(重新来)

文章目录数据库的创建,删除查看删除数据库备份数据库创建表常用的数据类型整数小数文字类型二进制类型时间类型修改表CRUD(增删改查)insertupdatedelectselect在where子句中使用的运算符order bycount函数sum平均值avgmax最大值group by 和 having字符串相关函数数学相关函数数据库的创建,删除//创建一个数据库create database tablename//创建一个字符集为UTF8 并且校对规则为UTF8_bincreate databa

2022-03-10 00:46:24 617

原创 IO流介绍(持续更新)

IO流介绍字节流inputStreamoutputStream字符流Reader:字符输入流Writer:字符输出流处理流转换流InputSteamReader和OutputSteamWriterBufferedReader字节流inputStreaminputSteam石java中IO库提供的一个接口 , 是一个字节流,以byte为单位读取因为是接口所以我们使用实现类FileinputStream来实现核心方法: public int read() throws IOException {

2022-03-07 22:00:06 2336

原创 mysql数据类型

2022-02-27 21:34:43 237

空空如也

空空如也

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

TA关注的人

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