自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA多线程(5)

同步方法的锁对象是谁?就是实现类对象 new RunnableImpl(),也是就是this,所以同步方法是锁定的this对象。

2023-11-19 22:18:11 168

转载 JAVA多线程(4)

因为线程调度是由操作系统控制的,而操作系统会根据当前的系统状态、任务队列等因素来决定线程的执行顺序。因此,线程优先级只能作为参考,不能保证线程执行的顺序。线程的优先级决定了线程在 CPU 调度时的执行顺序,优先级越高的线程越先被执行。使用 ThreadMXBean 类的 getThreadPriority(long) 方法:通过获取 ThreadMXBean 实例,可以查询和设置线程的优先级。使用 Thread 类的 setPriority(int) 方法:这是最常用的方法,可以直接设置线程的优先级。

2023-11-19 22:14:21 38

原创 Java多线程(3)

ated 状态,表示线程执行完毕并终止。通过以上案例,我们可以清楚地看到不同线程状态的转换,包括 new、runnable、blocked、terminated 等状态。**Java线程的生命周期包括新建、就绪、运行、阻塞和销毁五个阶段。根据JVM的源码分析,线程的状态可以分为new、runnable、blocked、waiting、timed_waiting和terminated六种状态。**在实际项目中,了解线程的生命周期和状态对于编写高效的多线程程序非常重要。

2023-11-19 22:09:40 244

原创 SpringBoot框架简介

我们大家都知道Spring,Boot是启动的意思,所以SpringBoot其实是一个启动Spring项目的一个工具,从根本上讲,SpringBoot就是一些库的集合,它能够被任意项目的构建系统所使用。

2023-11-19 22:03:54 150

原创 maven

maven什么是Maven?如今我们构建一个项目需要用到很多第三方的类库,如写一个使用Spring的Web项目就需要引入大量的jar包。一个项目Jar包的数量之多往往让我们瞠目结舌,并且Jar包之间的关系错综复杂,一个Jar包往往又会引用其他Jar包,缺少任何一个Jar包都会导致项目编译失败。以往开发项目时,程序员往往需要花较多的精力在引用Jar包搭建项目环境上,而这一项工作尤为艰难,少一个Jar包、多一个Jar包往往会报一些让人摸不着头脑的异常。而Maven就是一款帮助程序员构建项目的工具,我们只

2023-11-12 16:09:21 371 1

原创 Java多线程(2)

在Java中,多线程主要的实现方式有四种:继承Thread类、实现Runnable接口、实现Callable接口经过FutureTask包装器来建立Thread线程、使用ExecutorService、Callable、Future实现有返回结果的多线程。Thread类本质上也是实现了Runnable接口的一个实例,表明一个线程的实例。实现Runnable接口并实现其中的run方法,而后经过构造Thread实例,传入Runnable实现类,而后调用Thread的start方法便可开启一个新线程。

2023-11-12 15:45:42 53

原创 Java多线程

Java中的多线程,首先,在理解线程之前,要明白进程,一个进程有多个线程,线程是进程的实体。进程是交替运行的,所以我在写博客的时候,可以一边听着轻音乐,一边挂着qq。Thread类:Thread类中常用的方法包括start()方法,interrupt()方法,join()方法,run()方法;join()方法挂起,如果A调用B的join()方法,直到B执行完毕,才会执行A。当线程启动start()方法后,执行run()方法,考虑优先级;

2023-11-12 15:28:33 41

原创 Ajax实现步骤和原理

Ajax = 异步 JavaScript 和XML。Ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 Ajax)如果需要更新内容,必需重载整个网页面。

2023-11-09 15:36:02 399

原创 Swing高级应用

表格是 Swing 新增加的组件,主要功能是把数据以二维表格的形式显示出来,并且允许用户对表格中的数据进行编辑。表格组件是最复杂的组件之一,它的表格模型功能非常强大、灵活而易于执行。由于篇幅有限,本节只介绍默认的表格模型。

2023-11-09 15:24:57 29

原创 Swing 程序设计

组件名称定义JButton代表 Swing 按钮,按钮可以带文字或图片JCheckBox代表 Swing 中的复选框控件JComBox代表下拉列表框,可以在下拉区域显示多个选项JFrame代表 Swing 框架类JDialog代表 Swing 版本的对话框JLabel代表 Swing 中的标签组件代表 Swing 的单选按钮JList代表能够在用户界面显示一系列条目的组件JTextField代表文本框代表密码框JTextArea代表 Swing 中的文本区域。

2023-11-07 17:02:10 138

原创 Java输入与输出(4)

RandomAccessFile类包含了一个记录指针,用以标识当前读写处的位置,当程序新创建一个RandomAccessFile对象时,该对象的文件记录指针位于文件头(也就是0处),当读/写了n个字节后,文件记录指针将会向后移动n个字节。除此之外,RandomAccessFile可以自由的移动记录指针,即可以向前移动,也可以向后移动。返回文件记录指针的当前位置将文件记录指针定位到pos位置。

2023-11-07 16:23:17 43

原创 Java输入与输出(3)

由于字节流操作中文不是特别的方便,所以Java就提供字符流字符流 = 字节流 + 编码表用字节流复制文本文件时,文本文件也会有中文,但是没有问题,原因是最终底层操作会自动 进行字节拼接成中文,如何识别是中文的呢?汉字在存储的时候,无论选择哪种编码存储,第一个字节都是负数1.2编码表【理解】什么是字符集常见的字符集ASCII字符集:ASCII:是基于拉丁字母的一套电脑编码系统,用于显示现代英语,主要包括控制字 符(回车键、退格、换行键等)和可显示字符(英文大小写字符、阿拉伯数字和西文符号)

2023-11-03 21:15:59 28

原创 Java输入和输出(2)

把“E:\itcast\窗里窗外.txt”复制到模块目录下的“窗里窗外.txt” (文件可以是任意文件)把“E:\itcast\mn.jpg”复制到模块目录下的“mn.jpg” (文件可以是任意文件去)把“E:\itcast\字节流复制图片.avi”复制到模块目录下的“字节流复制图片.avi”读写数据,复制图片(一次读取一个字节数组,一次写入一个字节数组)2.7字节流读数据(一次读一个字节数组数据)【应用】2.3字节流写数据的三种方式【应用】2.5字节流写数据加异常处理【应用】

2023-11-03 20:50:02 24

原创 IO流和缓存流的区别

public FileOutputStream(String file , boolean append):创建一个追加数据的字节输出流管道通向目标文件路径。public FileOutputStream(File file , boolean append):创建一个追加数据的字节输出流管道通向目标文件对象。2.public int read(byte[] buffer):从字节输入流中读取字节到字节数组中去,返回读取的字节数量,没有字节可读返回-1。

2023-11-03 19:59:10 21

原创 Java输入与输出(1)

1)File(String pathname):通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。//路径结果就是xxx2)File(File parent, String child):通过parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。若子路径child为Null,会抛出NullPointerException空异常错误。

2023-11-03 19:52:20 26

原创 Java集合

集合框架定义了一些接口。

2023-11-01 22:09:45 20

原创 转发和重定向的区别

转发:是指服务器接收到一个请求后,将请求转发给另一个资源进行处理,并将该资源的处理结果返回给客户端。在这个过程中,转发后的资源对客户端是不可见的,客户端只知道自己访问了一个资源,而不知道这个资源是被转发到的。重定向:是指服务器接收到一个请求后,发现该请求需要访问另一个资源才能得到响应,于是告诉客户端重新发送一个请求,访问另一个资源。在这个过程中,客户端会重新发送一个请求,访问另一个资源,因此客户端会知道自己访问了两个资源。理。而重定向需要客户端重新发送一个请求,因此需要客户端进行相应的处理。

2023-11-01 21:29:34 67

原创 Java常用的实用类

就是一连串的字符序列,Java提供了String和StringBuffer两个类来封装字符串,并提出了一系列的方法来操作字符串对象。java.lang.String类代表不可变的字符序列。

2023-10-30 20:41:08 135

原创 SpringMVC

SpringMVC就是一个Spring内置的MVC框架。MVC框架,它解决WEB开发中常见的问题(参数接收、文件上传、表单验证、国际化等等),而且使用简单,与Spring无缝集成。支持 RESTful风格的URL请求。采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性。

2023-10-30 19:42:10 23

原创 Java异常处理

在 Java 中你可以自定义异常。编写自己的异常类时需要记住下面的几点。所有异常都必须是 Throwable 的子类。如果希望写一个检查性异常类,则需要继承 Exception 类。如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。只继承Exception 类来创建的异常类是检查性异常类。下面的 InsufficientFundsException 类是用户定义的异常类,它继承自 Exception。一个异常类和其它任何类一样,包含有变量和方法。

2023-10-26 16:58:01 26

原创 实现Spring和MyBatis整合步骤

注意:必须和外添加 mybatis-spring-1.3.2jar。在Spring中配置MyBatis相关类。

2023-10-26 16:31:56 20

转载 Java接口

否则会报编译错误,因为接口就是为了让子类实现的,而 final 阻止了这种行为。

2023-10-24 12:15:28 26

原创 继承与多态

面向对象程序设计语言(Object Oriented Programming)OOP 有三大特性:封装、继承和多态性。继承是 Java 中实现软件重用的重要手段,是 java 面向对象编程技术的一块基石。因为它允许创建分等级层次的类。继承是非常简单而强大的设计思想,它提供了我们代码重用和程序组织的有力工具。没有继承的语言只能被称作“使用对象的语言”。类是规则,用来制造对象的规则。我们不断地定义类,用定义的类制造一些对象。类定义了对象的属性和行为,就像图纸决定了房子要盖成什么样子。一张图纸可以盖很多房子,它们

2023-10-24 12:06:43 30

原创 面向对象程序设计基础

类是一个模块,描述一类对象的行为和状态:类的一个实例,有状态和行为,例如:一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。实例变量(int float bool):每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。

2023-10-22 22:33:18 30

原创 JAVA程序流程控制

到这里关于循环结构的所有内容就都已经学习完了,我们再把几种循环结构在什么场景下使用,再总结一下。1. 什么是流程控制答:流程控制是用来控制程序的执行顺序的2. 分支结构if和switch,如何选择?答:if分支:一般用于对一个范围进行判断switch分支:对一个一个值进行匹配3. for循环和while循环、do-while如何循环答:知道循环次数用for、不知道循环次数用while想要先执行,再判断,用do-while。

2023-10-22 22:17:21 34

原创 Java基本语法

所谓常量,就是值永远不允许被改变的量,在Java中。强制类型转换也称为显示类型转换,指的是两种数据之间的转换需要进行显示的声明,当两种类型彼此不兼容,或者目标类型取值范围小于源代码时,自动类型转换无法进行,这 时就需要进行强制类型转换。所谓变量, 就是值可以被改变的量,如果要声明一个变量,并不需要使用任何关键字进 行修饰,变量名的第一个单词小写,后面的单词首字母大写,声明变量的具体方式如下。在声明常量时,通常情况下立即为其赋值,即立即对常量进行初始化,常量标识符要大 写,声明初始化常量的具体方式如下。

2023-10-22 22:08:08 30

原创 AOP概述

即在声明的类,增加@Component @Aspect 两个注解,Springboot中要引入 spring-boot-stater-aop依赖包。

2023-10-22 21:17:12 18

转载 Spring的AOP理解

代理就是在不修改源代码的情况下使得原本不具备某种行为能力的类、对象具有该种行为能力,实现对目标对象的功能扩展代理的应用场景事务处理权限管理日志收集AOP切面Java的代理分为静态代理和动态代理静态代理的局限性:只能代理某一类型接口的实例,不能代理任意接口任意方法的操作。静态代理只能代理固定或单一接口的方法,也就是说不能做到任何类任何方法的代理。

2023-10-19 10:26:26 262

原创 使用注解实现IoC

1):相同点@Resource的作用相当于@Autowired,均可标注在字段或属性的setter方法上。(2):不同点提供方@Autowired是Spring的注解,@Resource是javax.annotation注解,而是来自于JSR-250,J2EE提供,需要JDK1.6及以上。注入方式@Autowired只按照Type 注入;@Resource默认按Name自动注入,也提供按照Type 注入;属性@Autowired注解可用于为类的属性、构造器、方法进行注值。

2023-10-19 09:37:23 160

原创 java设计模式

有:1、观察者模式;2、抽象工厂模式;3、单例设计模式;4、策略模式;5、适配器模式;6、命令模式;7、装饰器模式;8、外观模式;9、模板方法模式;10、状态模式。其中,观察者模式又称为发布-订阅模式,定义了对象之间一对多依赖关系。

2023-10-19 09:03:01 226

原创 spring

*特点:**轻量级开源框架,由Rod Johnson为了解决企业应用 程序开发的复杂性而创建, JavaEE的春天,当前主流框架。目标:使现有技术更加易用,推进编码最佳实践;实现一个全方位的整合框架,实现“ 一站式”的企业应用开发内容loC容器AOP实现数据访问支持:简化JDBC/ORM框架、声明式事务Web集成。

2023-10-17 15:34:55 266

原创 spring ioc和aop原理

将对象交给IOC容器管理,你只需要在spring配置文件中配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spring会把你在配置文件中配置的bean都初始化好,然后在你需要调用的时候,就把它已经初始化好的那些bean分配给你需要调用这些bean的类(假设这个类名是A),分配的方法就是调用Asetter方法来注入,而不需要你在A里面new这些bean了。接口方式注入显得比较霸道,因为它需要被依赖的对象实现不必要的接口,带有侵入性。

2023-10-17 15:05:55 288

原创 mybatis框架异常

在框架中遇到了org.apache.ibatis.exceptions.PersistenceException问题,由于比较常见于测试映射文件,一不小心犯个小错就出现了。

2023-10-13 22:17:22 261

原创 JVM概述

JVM是JavaVirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM是可运行 Java虚拟机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。

2023-10-13 21:23:01 326

原创 MyBatis缓存机制

​ 在 MyBatis 中允许使用缓存,缓存一般都放置在可高速读/写的存储器上,比如服务器的内存,它能够有效提高系统的性能。数据库在大部分场景下从磁盘上的索引数据,从硬件的角度分析,索引磁盘是一个较为缓慢的过程,读取内存或者高速缓存处理器的速度是读取磁盘速度的几十倍到上百倍,但是内存和高速缓存处理器的空间有限,所以一般只会把那些常用且命中率高的数据缓存起来,以便将来使用,而不缓存那些不常用或命中率低的数据,这些数据最后还是要在磁盘内查找,并不能有效提高性能。

2023-10-13 20:56:48 216

原创 resultMap

resultMap元素resultMap元素是MyBatis中最重要最强大的元素。它的作用是告诉MyBatis将从结果集中取出的数据转换成开发者所需要的对象。下面是最简单的映射语句示例:<select id="selectUser" resultType="map">SELECT * FROM TB_USER</select>selectUser的<select.../>元素执行一条查询语句,查询TB_USER表的所有数据。resultType="map"

2023-10-12 20:57:57 381

原创 动态sql

*** 批量新增*//*** 批量删除*/

2023-10-11 22:47:58 361

原创 MyBatis配置和映射器

默认情况下,它会关闭连接,但是一些容器并不会如此,因此,如果您需要通过关闭连接来停止事务,将属性closeConnection设置为false。这里提供了大量的配置选项。因此最优先的属性是通过方法参数来传递的属性,然后是通过resource/url配置的属性,最后是在MyBatis的Mapper配置文件中,properties元素主体中指定的属性。默认的环境和环境ID是自解(self explanatory)的,只要您喜欢,就可以随意取一个名字,只要确保默认的运行环境引用一个已定义的运行环境就可以了。

2023-10-09 22:43:12 166

原创 MyBaties中@Param注解

即:用注解来简化xml配置的时候,@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中。用注解来简化xml配置的时候,@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中。在方法接受多个参数的情况下,建议一定要使用@Param注解给参数命名。在方法只接受一个参数的情况下,可以不使用@Param。采用#{}的方式把@Param注解括号内的参数进行引用。@Param用于dao层,是mybatis中的注解。

2023-10-09 21:45:45 192

原创 Mysql数据库的选择查询

语法:select 字段列表/表达式​ from 表名字​ where 条件​ group by 分组条件字段 having 分组查询之后筛选条件select 查询列from 表1 别名【连接类型】jion 表2 别名on 链接条件【where 筛选条件】【group by 分组】【having 分组后筛选】【order by排序】解释:对数据按照某一个字段条件进行分组,然后按组单独处理数据​ 对数据分类处理语法中的两个条件:​ where 条件:在

2023-09-26 17:50:13 105

空空如也

空空如也

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

TA关注的人

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