自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM常见问题

JVM的垃圾回收是自动管理内存的机制,它负责回收不再使用的对象所占用的内存空间,并释放给程序员的其他部分。(5)类索引、父类索引和接口索引集合:类索引指向该类在常量池中的权限定名常量、父类索引指向父类的全限定名常量,接口索引集合列举了该类直接实现的接口。JVM的调优包括调整堆内存大小、优化垃圾回收器的选项、设置合适的线程数、调整JIT编译器的参数等。(7)方法表集合:描述类或者接口中声明的方法,包括方法的访问标志,名称、描述符以及属性集合。11、JVM中的线程管理是如何实现的?10、什么是JIT编译器?

2023-07-10 22:10:34 116

原创 关于Java常见面试题目

session的工作原理是客户端登录完成之后,服务器会创建对应的session,session创建完成之后,会把session的id发送给客户端,客户端再存储到浏览器中,这样客户端每次访问服务器时,都会带着sessionId,服务器拿到sessionId之后,内存找到与之对应的session这样就可以正常工作了。反射是在运行状态中,对于任意一个类,都能知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取对象的以及动态调用对象的功能称之为Java语言的反射机制。

2023-06-12 23:33:31 121

原创 Spring,springMVC,SpringSSM,Spring Boot,Spring Cloud分别是什么,以及优缺点和它们之间的区别

SpringSSM整合了Spring、SpringMVC和Mybatis等框架,是一个结合了web框架和ORM框架的开发框架,能够构建易于维护的web应用程序;Spring Cloud则是基于Spring Boot的微服务框架,解决分布式系统中的问题,例如负载均衡、服务注册和配置管理等,适用于复杂的分布式系统。用于构建web应用程序,处理请求和响应,提供MVC模式的web应用程序开发,使得开发人员能够对web应用程序进行更好的控制,并且开发效率更高。在处理大量数据时,Spring框架的性能可能会受到影响。

2023-05-31 19:08:51 650

原创 SpringMVC常见的一些问题。

HandlerAdapter是SpringMVC中的一个关键组件,它的作用是将不同类型的Controller适配为能够处理请求的标准Controller接口。HandlerMapping是SpringMVC中的一个关键组件,它根据请求的URL地址和请求方式,找到相应的Controller,并将请求分发给Controller进行处理。DispatcherServlet是SpringMVC中最核心的组件之一,负责接收请求并将请求分发给相应的Controller进行处理,然后将处理结果转发给相应的视图进行渲染。

2023-05-30 20:03:47 109

原创 Django+Python+echarts查询数据库实现动态数据显示

模板的目录配置:修改 settings.py 文件,设置 TEMPLATES 的 DIRS 值来指定模板的搜索目录为 templates(如果使 用的是命令创建的Django项目,则需要手动创建 templates 文件夹以及指定templates 文件夹为模板资 源文件夹)(2)启动成功后,打开我们的浏览器输入:http://localhost:8000/,就可以看到如图信息,说明我们的第一 个项目搭建成功了。showEcharts /settings.py: 该 Django 项目的设置/配置;

2023-05-27 00:56:49 2172

原创 @Autowired:实现自动装配功能的注解

注意:若IoC容器中没有任何一个类型匹配的bean,此时抛出异常:NoSuchBeanDefinitionException在@Autowired注解中有个属性required,默认值为true,要求必须完成自动装配,可以将required设置为false,此时能装配则装配,无法装配则使用属性的默认值。(2)若有多个类型匹配的bean,此时会自动转换为byName的方式实现自动装配的效果即将要赋值的属性的属性名作为bean的id匹配某个bean为属性赋值;(3)标识在为当前成员变量赋值的有参构造上。

2023-04-08 19:15:27 198

原创 MyBatis获取参数值的两种方式

此时可以通过#{}和${}以任意的内容获取参数值。只需要通过#{}和${}访问实体类中的属性名,就可以获取相对应的属性值,一定要注意${}的单引号问题。只需要通过#{}和${}访问map集合的键,就可以获取相对应的值,一定要注意$的单引号问题。只需要通过#{}和${}访问map集合的键,就可以获取相对应的值,一定要注意${}的单引号问题。因此,只需要通过#和鲁访问map集合的键,就可以获取相对应的值,一定要注意$的单引号问题。3、若mapper接口方法的参数为map集合类型的参数。

2023-04-08 09:59:16 118

原创 Java基础、面向对象编程基础思维导图(持续更新中~~~)

Java基础、面向对象编程基础思维导图

2023-03-28 08:09:13 150

原创 封装数据库重复代码 :封装两个方法 :一个简化DQL;一个简化非DQL,对数据库进行增、删、查、改功能

封装两个方法 :一个简化DQL方法;一个简化非DQL方法。3、测试:@Test表示按模块进行测试。

2023-03-11 16:40:19 101

原创 详细编写:Java面向控台的小案例-----通过jdbc操作数据库(单表)的不同写法

二、方式二:封装连接工具类、封装增、删、查、改等方法进行调用。配置信息文件jdbc.properties。增、删、查、改功能的方法。一、方式一:不进行封装。

2023-03-11 16:28:44 66

原创 Jdbc中使用Statement和PreparedStatement预编译实现模拟用户登录功能

PrepareedStatement预编译可以防止注入攻击。二、PreparedStatement预编译。Statement不能预防注入攻击。一、Statement。

2023-03-11 14:49:27 203

原创 枚举类的设计以及枚举应用实例

枚举类的应用:创建一个季节枚举类,输入一个月份判断是什么季节?JDK1.5之前的枚举类的设计。

2023-02-28 18:37:03 111

原创 Java网络编程(TCP通信程序)实例

【代码】Java网络编程(TCP通信程序)实例。

2023-02-28 18:27:16 296

原创 Java核心编程day7 (网络编程)

(3)端口号:网络的通信,本质上是两个进程(应用程序)的通信。如果说地址可以唯一标识网络中的设备, 那么端口号就可以唯一标识设备中的进程(应用程序)了。监听服务端的连接, 该方法会阻塞到一直建立连接为止。三次握手: TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠。第二次握手,服务器端向客户端回送一个响应, 通知客户端收到了连接请求。辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。第一-次握手,客户端向服务器端发出连接请求,等待服务器确认。

2023-02-28 18:24:03 54

原创 Java核心编程day7(序列化)

(2)当一个对象序列化后会系带一个serialVersionUID,如果再去改变,此时类会重新编译,serializable接口会重新提供一个serialVersionUID,此时对对象进行反序列化操作时,会因serialVersionUID不同而导致失败。(1)序列化流:ObjectOutputStream,构造函数:public ObjectOutputStream(OutputStream out)(1)序列化:将对象转换成字节存储到文件中。(2)反序列化:将文件中存储字节转化为对象。

2023-02-28 18:17:18 44

原创 用递归找出一个目录下的所有文件的名称

【代码】用递归找出一个目录下的所有文件的名称。

2023-02-27 19:14:24 109

原创 Java核心编程 day6 (File类和IO流)

ps:一切文件的数据(文本、图片、视频)在存储时,都是以二进制的形式进行保存,都是以字节为单位,因此通过字节流可以操作任意的数据。java中的IO就是对数据进行输入,输出操作,数据的I/O操作依靠流来实现,根据数据单位的不同又将流分为字节流和字符流。在电脑程序中,对数据的传入,可以看成数据的流动,根据流动的方向分为输入流和输出流;//1.创建要创建的文件的File对象。

2023-02-27 19:09:35 52

原创 常用类(String)

(3)当调用String的replace()方法修改字符时,也必须要重新指定内容存储区域赋值,不能使用value进行赋值。(2)当对现有的字符串进行连接操作时,也需要重新指定内存区域赋值,不能使用value进行赋值。体现:(1)当对字符串重新赋值时,需要重新指定内容存储区域赋值,不能使用value进行赋值。两个:一个是堆空间中new结构,另一个是char[]对应的常量池中的数据:"abc"6、通过字面量的方式(区别于new)给一个字符串赋值,此时的字符串值声明在字符串常量池中。

2023-02-26 14:00:56 67

原创 Java核心编程day5 (线程)

当我们使用Thread来创建和开启线程,如果创建的线程数量过多,频繁的创建和销毁线程会消耗大量的资源,所以使用线程池来创建线程可以极大的降低线程在创建和消耗时所使用的资源。如果有多个线程处于无限等待状态时,notify会随机唤醒一个线程,notifyAll会将所有等待的线程唤醒,被唤醒过后的线程, 可能处于可运行状态或锁阻塞状态。4、无限等待(Waiting):执行wait()方法后,线程处于无线等待,此时线程必须靠其他线程调用notify()或者notifyAll方法将其唤醒。四、线程池:降低开销。

2023-02-26 09:47:57 51

原创 释放锁和不释放锁的操作

(1)线程执行同步代码块或同步方法时,程序员调用Thread.sleep()、Thread.yield()方法暂停当前线程的执行;(2)线程执行同步代码块时,其他线程调用了该线程的suspend()方法将线程挂起,该线程不会释放锁。(2)当前线程在同步代码块、同步方法中遇到break、return终止了该代码,该方法的继续执行。(4)当前线程在同步代码块、同步方法中执行了线程对象的wait()方法,当前线程暂停,并释放锁。(1)当前线程的同步方法、同步代码块执行结束;二、不会是地方锁的操作。

2023-02-26 09:45:34 125

原创 JDK5.0 新增线程创建方式

如何理解实现callable接口的方式创建多线程比实现Runnable接口创建多线程方式要强大?2、call()方法可以抛出异常,被外面的操作捕获,获取异常的信息。2、降低资源消耗(重复利用线程池中,不需要每次都创建)3、便于线程管理corePoolSize:核心池的大小。一、新增方式一:实现Callable接口。1、提高相应速度(减少创建线程的时间)3、callable()是支持泛型的。1、call()方法可以有返回值。

2023-02-25 23:12:36 41

原创 线程通信的例子:使用两个线程打印1-100,线程一,线程二交替打印。

(2)wait(),notify(),notifyAll()三个方法的调用者必须是同步代码块或同步方法中的同步监视器。(2)调用的范围不同:sleep()可在任何需要的场景下调用。(1)wait(),notify(),notifyAll()三个方法必须使用在同步代码块或同步方法中。(1)两个方法声明的位置不同:Thread类中声明sleep(),object类中声明wait()(3)关于是否释放同步监视器:如果两个方法都使用在同步代码块或同步方法中,sleep()不会释放锁。(1)wait();

2023-02-25 18:23:17 78

原创 Java核心编程day5 (线程)

当我们使用Thread来创建和开启线程,如果创建的线程数量过多,频繁的创建和销毁线程会消耗大量的资源,所以使用线程池来创建线程可以极大的降低线程在创建和消耗时所使用的资源。如果有多个线程处于无限等待状态时,notify会随机唤醒一个线程,notifyAll会将所有等待的线程唤醒,被唤醒过后的线程, 可能处于可运行状态或锁阻塞状态。4、无限等待(Waiting):执行wait()方法后,线程处于无线等待,此时线程必须靠其他线程调用notify()或者notifyAll方法将其唤醒。四、线程池:降低开销。

2023-02-24 18:46:29 35

原创 Java核心编程day4 (线程)

原理:将会出现线程安全问题的代码,加上一个同步锁, 当多个线程操作同一个资源的时候,必须获取到锁后才能操作资源 保证每次次有一个线程在操作资源。(4)创建Thread对象,通过构造函数传递实现类对象,调用start()开启线程,执行run方法。(2)(2)使用同步方法(静态,非静态):将可能会出现线程安全的代码放在一个同步方法中去。(3)创建Thread对象,调用strat()方法,开启一个线程,会自动执行run方法。线程:线程是一个动态执行的过程,它也有一个从产生到死亡的过程。

2023-02-23 19:39:39 29

原创 Java核心编程 day4(异常补充)

格式:throw new 异类型("异常信息");//在java中异常都是类,new异常类型()表示在创建异常对象。表示声明一个异常,一般用于告知方法的调用一些注意事项;(1)继承RuntimeException。(1)继承Exception。(2)创建一个无参构造。(2) 创建一个无参构造。

2023-02-23 18:44:52 24

原创 使用HashMap统计字符串中每个字符出现的次数

【代码】使用HashMap统计字符串中每个字符出现的次数。

2023-02-23 11:44:27 138

原创 简单的将一个整数数组中的元素进行去重排序

【代码】简单的将一个整数数组中的元素进行去重排序。

2023-02-23 11:41:40 35

原创 Java核心编程day3 (异常)

(3)可以在catch中声明父类Exception类型,此时catch能够捕获所有类型的异常,但不知道具体的异常,此时不能再声明 catch捕获其他异常,因为此时已经被catch(Exception)捕获了。}catch(发生异常的类型){ //对发生的异常进行捕获 可以写多个catch捕获多个异常。异常的概述:程序在运行时,发生了的错误,它阻止了程序按照预期正常执行的流程,这就是异常。//异常处理语句 一般是打印异常的类型,异常发生原因,以及异常出现的位置。比如] [空指针异常,数组越界异常。

2023-02-22 19:22:01 22

原创 Java核心编程day3 (泛型)

super 类型:?代表的是要么是该类型,要么是该类型的父类 例如:?extends 类型:?代表要么是该类型 要么是该类型的子类 例如:?泛型方法:格式为:权限修饰符 返回值类型 方法名(参数列表);泛型类:格式为:class 类名:T表示未知类型的变量;如何确定泛型T的类型?泛型接口:格式为:interface 接口名;通配符:表示不确定的类型 用“?(2)在创建实现类也无法确定其类型,在创建实现类对象时确定。调用方法时,传递什么类型参数泛型就为什么类型。

2023-02-22 19:07:24 32

原创 Java核心编程day3 (Map接口)

/key:value.......封装成------Entry对象----存储----->存储结构中。K:key值的类型,V:value值的类型。1、Map(接口):以key:value的形式存储数据key叫做键,value叫做值。//创建了一个key为Integer类型,value为String类型的HashMap。

2023-02-22 18:52:34 48

原创 Java核心编程day3(工具类)

/[34, 56, 99, 100]默认升序。工具类:提供了操作一系列指定对象的一系列方法(排序,复制.......等功能),一般都是静态方法;将集合中的元素的顺序打乱,每次运行结果不一样。//将array-->list Array.asList(包装类类型的属性)//2.将list的元素进行降序排序(使用了比较器)Collections:用于操作集合的工具类.Arrays用于操作数组的工具类;//将list-->set。//将Set-->list。

2023-02-22 18:39:55 36

原创 Java核心编程day2

在存储值时,首先判断是否已经存储了hashcode一样的值,使用equals进行判断,equals相同--》不存储 equals---》不相同,则存储,如果存在不相同的hashcode直接存储。set结合在存储值时,会根据值的hashcode来计算出该值在数组中的存储位置,因为不同的值,一般hashcode不相同,所以计算出来的存储位置,却取决于hashcode,因此存储位置是杂乱的。ArrayList:底层使用数组实现的,查询快,增删慢,线程不安全,当数据查询比较多时使用。前>后 返回 正数。

2023-02-21 19:13:19 17

原创 Java中的final

修饰局部变量:尤其是使用final修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量 形参赋一个实参,一旦赋值以后,就只能在方法体内使用此形参,但不能进行重新赋值。final修饰属性:可以考虑赋值的位置有:显式初始化、代码块中初始化,构造器中初始化。5、static final: 用来修饰属性:全局常量。4、final用来修饰变量:此时的变量就称为是一个常量。3、final用来修饰方法:表明此方法不可以被重写。1、final可以用来修饰的结构:类,方法,变量。

2023-02-20 22:41:56 122

原创 Java中的static

非静态方法中,即可以调用非静态的方法或属性,也可以调用静态方法的属性或方法。(3)由于类只会加载一次,则静态变量在内存中也只会存在一份,存在方法区的静态域中。实例变量:当我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性。静态变量:当我们创建了类的多个对象,多个对象共享同一个静态变量,当某一个。(1)随着类的加载而加载,可以通过“类.静态方法”的方式进行调用。当修改其中的一个非静态属性时,不会导致其他对象中同样的属性值的修改。属性可以被多个对象所共享的,不会随着对象的不同而不同的。

2023-02-20 22:38:45 60

原创 java核心编程Day1

(1)第一种(只能访问Collection接口中的方法) 多态的方式:子类或者实现类对象赋给父类类型或者接口类型(向上转型)Collection list=new ArrayList。(6)remove(Object obj):删除指定的元素,如果有该元素返回true,否则false。(5)remove(int index)删除指定下标元素,并且返回被删除的元素值。(3)add(int index,E e) 在指定下标位置添加元素。(7)set(int index,E e)修改指定下标元素值。

2023-02-20 19:55:02 68 1

空空如也

空空如也

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

TA关注的人

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