自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 牛客刷题总结12

【代码】牛客刷题总结12。

2023-07-20 18:49:11 144

原创 牛客刷题总结11

在初始化Employee对象时,在Employee的构造函数中因为没有显式的调用父类中的构造方法所以编译不通过,因为Person类中的构造方法是有参的,编译器默认调用的是无参构造方法,如果在Employee的构造器的第一行调用super("参数名")则不会报错。在创建自己的Servlet时候,应该在初始化方法init()方法中创建Servlet实例(创建Servlet的实例是由Servlet容器来完成的,且创建Servlet实例是在初始化方法init()之前)(3)初始化:调用init方法初始化。

2023-07-18 19:55:49 355

原创 牛客刷题总结10

servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。对于局部内部类,只有在方法的局部变量被标记为final或局部变量是effctively final的,内部类才能使用它们。匿名内部类和局部内部类的用法不一致,匿名内部类没有类名,故其没有构造器,而局部内部类有类名,故两者用法不一样。

2023-07-17 19:20:43 324

原创 牛客刷题总结9

为什么唯一约束不能用来定义外键,原因如下,唯一约束可以允许定义的字段为null,如果用唯一约束来定义外键,那么外键可以为null,但外键是另一个表中的主键,而主键不能为null,因此,唯一约束不能用来定义外键。计算 b = a+b且a,b都为Byte类型时,左边为Byte类型,右边为int类型,故如果不进行强制转换,编译器不会通过,而a+=b则会自动强转不会报错。out对象,response对象,application对象,page对象。唯一约束不能用来定义外键。表可以包含多个唯一约束,但只能有一个主键。

2023-07-16 18:57:59 186

原创 牛客刷题总结8

equals()方法未重写比较的是两者的地址,test和testB对象是两个不同的对象,因此他们的地址不同,故返回结果为false,abc是通过字面量的方式赋值,第一次在常量池中发现没有abc,第二次发现常量池里面有,故两次得到的abc是同一个对象,且该对象被同一个引用指向,故返回true,第三个true也是同样的道理。类的加载顺序 父类静态成员变量、静态块>子类静态成员变量、 静态块>父类普通成员变量、非静态块>父类构造函数>子类 普通成员变量、非静态块>子类构造函数。不会初始化子类的几种情况。

2023-07-14 19:23:52 258

原创 牛客刷题总结7

static修饰的变量属于类,线程在使用这个属性的时候是从类中拷贝一份到线程工作内存的,如果修改线程内存中的值之后再写回到原先的位置,就会有线程安全问题,用static修饰的变量可见性是无法确保的。能保证线程安全(volatile关键字不能保证线程安全,它只是提供了一种弱的同步机制来保证修饰的变量的更新操作通知到其他线程)代码输出“A B C A A B C A B C”选择语句可以嵌套使用(switch case不能嵌套使用)代码输出“A B C A B C A B C”

2023-07-13 19:30:41 141

原创 牛客刷题总结6

subSet和set指向的内容是相同的,因此set添加609之后,subSet也要添加609,subSet()方法是返回set集合中在608到611中间的集合元素,因为方法参数中两个都为true,因此包含608。Java默认提供的三个ClassLoader是Boostrap ClassLoader,Extension ClassLoader,App ClassLoader。ClassLoader使用的是双亲委托模型来搜索类的。数据库备份,事务日志备份,差异备份,文件和文件组备份。

2023-07-04 19:28:01 293

原创 牛客刷题总结5

举例:你去银行办事(forward.jsp),但缺少公安局的证明(index.htm),银行要求你去公安局取了证明之后再来银行办理业务,这时你得走出银行去公安局(index.htm),因此,地址栏会改变。举例:你把钱包落在了出租车上,你去警局报案(forward.jsp),警察局打电话给这个出租车司机(index.htm),让他把钱包送过来,你不用自己去找他,在警局等就行。redirect:请求重定向,客户端行为,本质上是两次请求,地址栏改变,前一次请求对象消失。静态数据成员可以在类体内初始化。

2023-07-03 19:13:13 183

原创 牛客刷题总结4

JDBC连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不要动,原因是JDBC提供了统一接口,每个数据库提供自己的实现即可,用一个叫数据库驱动的程序来连接就行了。调用方法a,b锁住的都是this即该同一对象,调用方法c,因为该方法是静态的,因此锁住的是Test.class,因此,锁住的不是同一个对象。copy()方法返回此对象的一个副本(Object没有copy()方法,此处应该说的是clone()方法)同一个对象,分别调用方法a和方法b,锁住的是同一个对象。

2023-07-02 19:33:15 220

原创 牛客刷题总结3

其中 Method Area(方法区)、Heap(堆)为线程共享,Program Counter Register(程序计数器)、VM Stack(虚拟机栈)、Native Method Stack(本地方法栈)为线程隔离。首先我们需要熟悉一个Java程序的一般性的工作过程,一个Java程序首先会被编译成字节码文件(以.class结尾),每个Java程序都运行在自己的JVM上,然后被告知程序入口,再被JVM字节码解释器加载运行。> > >是逻辑右移操作符。> >是算数右移操作符。

2023-07-01 19:19:30 242

原创 牛客刷题总结2

2.值类型数据是在栈上分配内存空间,他的变量直接包含变量的实例,使用效率相对较高,而引用类型数据是分配在堆上,引用类型的变量通常包含一个指向实例的指针,变量通过指针来引用实例。:1.值类型的变量赋值只是进行数据复制,创建一个同值的新对象,而引用类型的变量赋值,仅仅是把对象的引用的指针赋值给变量,使他们共用一个内存地址。1.当属于某个进程的所有线程结束后,该进程会结束,在该进程结束后,不管后台线程有没有完成,该后台线程都会结束。2.不管是前台线程还是后台线程出现了异常,都会导致进程的终止。

2023-06-29 19:09:51 247

原创 牛客刷题总结

synchronized关键字在jdk1.6之后进行了主要包括为了减少获取和释放锁带来的性能消耗而引入的偏向锁和轻量级锁以及各种优化之后效率有了明显的提升,实际开发中使用synchronized的场景还是要多一点。@SuppresWarnings 达到抑制编译器产生警告的目的,但是不建议使用,因为后期编码人员看不懂编译器的警告,不能更好的选择更好的类去完成任务。@Override 表明子类中的方法覆写了父类中的方法,如果写错了覆盖形式,,编译器会报错。:synchronized和volatile的区别。

2023-06-28 19:29:58 159

原创 牛客刷题总结1

答:StringBuffer和String,这两个类上都有final修饰,意味着这两个类不能被继承,通过阅读源码可知,jdk1.8中的String和StringBuffer都是通过字符数组实现的,其中String的字符数组是final修饰的,所以字符数组不可修改,而StringBuffer的字符数组没有final修饰,所以字符数组可以修改。String和StringBuffer都是fianl修饰,只是限制他们所存储的引用地址不可修改,至于地址所指内容能不能修改,则需要看字符数组可不可以修改。

2023-06-27 19:23:14 137

原创 牛客刷题错题总结

4.非抽象类实现接口后,必须实现接口中的所有abstract方法,除了abstract外,方法头必须一致(❌)2.如果在where子句中使用了索引,那么在order by中不会使用索引,因为整个查询语句只会使用一个索引。5.ThreadLocal用到了解决hash冲突的开放定址法。3.SQL语言具有数据定义,数据操纵,数据控制的功能。关键字指明继承关系,用implement。方法名,方法参数要相同。返回类型要小于等于父类。抛出异常要小于等于父类。访问权限要大于等于父类。1.java中用extend。

2023-06-20 19:33:32 66

原创 内部类的概述

4.如果外部类的属性和方法与成员内部类的属性和方法同名,成员内部类调用本类的同名方法时遵循就近原则,要想调用外部类的同名方法,通过外部类类名.this.同名方法名。4..如果外部类的属性和方法与静态内部类的属性和方法同名,静态内部类调用本类的同名方法时遵循就近原则,要想调用外部类的同名方法,通过外部类名.同名方法名。、静态内部类、局部内部类和匿名内部类四种,内部类是java类的五大成分之一(属性,方法,构造器,代码块,内部类),可见内部类在java基础体系中相当重要。中对类的一种定义方式,在一个类的内部。

2023-06-19 21:10:02 52

原创 HashSet底层分析

(需要注意的是这里的12个元素并不是指table表上的元素(即链表中的第一个元素),这里的12指的是table表上的元素个数加上链表上的元素个数(除了第一个链表上的数))3.在java8中如果链表上的元素的个数>=8且table数组的大小>=64,那么再往该链表上添加数据时,该链表就会变为红黑树。4.如果某个链表上的元素个数>=8且tabled数组大小>=64的话,继续往该链表上添加元素,该链表会变成红黑树。3.如果有元素则进行equals判断,如果相等则添加失败,如果不等则将该元素链接在该元素的后面。

2023-06-16 22:00:36 186

原创 ArrayList源码分析

3.首先判断elementData的大小是否等于0,此时的DEFULTCAPACITY_EMPTY_ELEMENTDATA = 0,然后会将DEFAULT_CAPACITY=10的值赋给minCapacity,即minCapacity = 10,然后进入ensureExplicitCapacity();6.当添加的元素超过10个的时候,会直接进行1.5倍的扩容,即elementData大小变为15,此后每当数组大小不够时都会直接以1.5倍扩容。3.在添加第十一个元素的时候会进行1.5倍的扩容。

2023-06-14 20:32:21 56

原创 juc之解决集合的线程不安全问题

原理:CopyOnWriteArrayList采用了写时复制技术,在有多个线程来并发读取数据时不会上锁,而在有多个线程来修改数据时会上锁,它会将原来的容器拷贝一份,然后在新容器上修改,修改之后再将新容器把旧容器覆盖掉。当有多个线程同时往ArrayList容器中加入数据,并读取数据时,会出现并发修改异常。使用Vector,但不推荐使用,因为使用该类性能较低。使用CopyOnWriteArrayList。使用CopyOnWriteArraySet。使用ConcurrentHashMap。1.3 解决方案三(

2023-05-22 07:00:00 82

原创 juc之公平锁和非公平锁

还有另外一种可能性,那就是当时这个人比较急于是就没有问旁边的人直接坐上去了,这两种人都可以坐上这个座位,但花的时间会不一样,前者出于礼貌,需要问一下,所以花的时间就要多一点,这样的场景可以形象地理解为公平锁,而后者由于比较急,就没有问,花的时间就少一点,这样的场景就可以理解为非公平锁。非公平锁:非公平锁会让每个线程拿到锁的概率相差很大,并且非公平锁的效率很高。在讲公平锁和非公平锁之前我们先来讲一讲一个用Lock接口来实现卖票的案例。公平锁:公平锁会让每个线程拿到锁的概率差不多,并且公平锁会导致效率低下。

2023-05-22 07:00:00 67

原创 juc之线程池

1.当我们创建了一个线程池并不意味着这个线程池里面就有了线程,当我们需要使用线程池里面的线程的时候,即开始执行execute()方法使,线程池才开始创建线程。线程池做的工作是控制运行中的线程数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了核心数量,超出数量的线程排队等候,等待其他线程执行完毕,再从队列中取出任务来执行。5.当线程池中的线程数达到了最大线程数时,且此时仍然有任务进入到线程池寻找线程,此时会触发线程池的拒绝处理策略即上图的。一种线程使用模式,线程过多会带来。

2023-05-21 21:32:22 70

原创 juc之Lock接口

System.out.println(Thread.currentThread().getName()+"正在卖票---当前票有:"+number--+"张--剩余:"+number+"张");Lock锁可重入、可中断、可公平、不公平,并可以细分读写锁以提高效率。Lock是一个接口,在代码层面实现加锁和解锁。4.synchronized会导致线程一直拿不到锁而等待,Lock可以设置获取锁失败的超时时间。Lock接口是两大锁的根接口之一,Lock代表实现类是ReetrantLock(可重入锁)

2023-05-21 08:00:00 28

原创 juc概述

就绪:一旦调用了start()方法就处于就绪状态,至于何时处于运行状态,要取 决于cpu。阻塞:当前线程调用了sleep方法,在等待通知,想要获得同步监视器,IO阻塞、suspend()方法调用了。用户线程:自定义线程,自己通过继承Thread类,实现Runnable接口,实现Callable接口等都是用户线程。并发:指的是多个线程竞争同一个资源,多个线程对一个点。线程有五种状态:新建--就绪--运行--阻塞-死亡。

2023-05-20 10:01:24 123

原创 ssm框架中web.xml三大组件的作用

listener即监听器,需要配置contextConfigLocation,其作用是加载spring的配置文件,创建springIOC容器,并且该容器为顶级容器。

2023-03-28 20:02:19 209

原创 关于ssm框架service层以及mapper层的命名建议

3.mapper层对应的方法名selectXXX(xxx)--------service层对应的方法名get/queryXXX(xxx)1.mapper层对应的方法名deleteXXX(xxx)--------service层对应的方法名removeXXX(xxx)2.mapper层对应的方法名insertXXX(xxx)--------service层对应的方法名saveXXX(xxx)

2023-03-28 19:25:46 547

原创 自定义异常处理器没有捕获异常,直接抛给浏览器

起初觉得这样写是完全没有问题的,当异常发生之后是可以捕获异常,并跳转到指定页面。但事与愿违,无论怎么修改都是直接在浏览器端报500。在网上寻找了一系列的解决方法之后,我坚信我的逻辑肯定没问题,于是乎可能是我的配置文件出了问题。自定义的异常处理器没有捕获到Controller层抛出的异常,而是直接抛给浏览器。2.1 Controller层代码如下。2.2 自定义异常类如下。2.4 跳转错误页面如下。2.3 异常处理器如下。

2023-03-13 20:42:09 382

原创 关于web.xml中的小知识

2. < url-pattern>/*</url-pattern> 会匹配所有url:路径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)1. < url-pattern>/</url-pattern> 会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url。

2023-03-11 15:31:02 58

原创 java面试题之索引

空间索引是对空间数据类型的字段建立的索引,MySQL中的控件数据类型有4种,分别是GEOMETRY、POINT、LINESTRING、和POLYGON.。MySQL使用SPATIAL关键字进行扩展,使得能够用创建正规索引类似的语法创建空间索引,创建空间索引的列,必须将其声明为NOT NULL,空间索引只能在存储引擎为MyISAM的表中创建。组合索引是指在表的多个字段组合上创建的索引,只有在查询条件中使用了这些字段的左边字段时,索引才会被使用,使用组合索引时遵循最左前缀集合。2.单列索引和组合索引。

2023-03-08 22:36:05 190

原创 Java面试题之索引

2.索引是在存储引擎中实现的,因此每种存储引擎的索引并不一定完全相同,并且每种存储索引也不一定支持所有索引类型,MySQL中索引的存储类型有两种,即BTREE和HASH,具体和表的存储引擎有关。1.索引是一个单独的、存储在磁盘上的数据库结构,包含着对数据表里所有记录的引用指针,使用索引可以快速找出在某个或多个列中有一特定值的行,所有MySQL列类型都可以被索引,对相关列使用索引是提高查询操作速度的最佳途径。3.当对表中的数据进行增加,删除和修改的时候,索引也要动态地维护,这样就降低了数据的维护速度。

2023-03-07 22:31:54 227

原创 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

然而对我来说并没有什么卵用,苦思冥想之下我突然发现我的xxxMapper.xml所在上一级包名与xxxMapper所在上一级包名的名字相同!3.问题总结:最后完美地通过了测试,虽然并不明白其中缘由,大概率是因为包名相同导致的冲突吧,欢迎各位大佬前来指正。于是我就突发奇想如果我把resources下的mapper换下名字会怎么样呢?网上提供了如下解决办法。接下来见证奇迹的时刻来到了!

2023-03-06 14:44:33 115

原创 springboot整合mybatisplus出现connect time out

springboot整合mybatisplus出现连接异常

2023-03-05 10:03:36 317

原创 ssm中数据库层在未用到springboot框架时报名不能用mapper

ssm中数据库层在未用到springboot框架时包名不能用mapper。

2023-03-02 09:53:43 46

原创 基于全注解搭建ssm框架

总结:由此基于全注解的ssm环境搭建完成,测试Controller层用到的工具为Postman,此工具十分便于测试ssm框架,网上可以找到资源下载 ,如果不想麻烦,也可用自己的浏览器进行测试。注意如果已经下载了maven以及maven仓库,那么自行配置一下即可,然后选择文件所在位置。@Configuration:将SpringConfig定义为一个配置类,其作用相当于。@ComponentScan(""):将对象扫描到IOC容器中,起作用相当于。11.编写service.impl层。

2023-03-02 09:46:09 310

原创 在删除application.properties文件的前提下,application.yml配置的端口无法生效

1.提出问题:在删除application.properties文件的前提下,application.yml配置的端口无法生效。

2023-03-01 08:30:07 192

原创 SpringBoot启动之后显示Whitelabel Error Page

3. 解决问题:将xxxController移动到主启动类所在包即可解决问题。

2023-02-27 15:21:07 132

原创 记录一次bug

在使用完全注解开发ssm环境时出现了如下问题-----项目成功启动之后不自动弹出浏览器界面。解决方法:在jdbc.properties前加上classpath。

2023-02-26 10:42:46 52

原创 Java面试题一:为什么Java可以做到一处编写处处运行?

Java可以做到一处编写处处运行(即Java的跨平台)的关键是因为jvm的存在。Java在程序运行前会将源代码编译成字节码,并且java源程序只要编译一次就行了,下次在不同的平台上只要直接由jvm运行就行了,不需要再次编译。在程序运行阶段会由平台相关的jvm转变为机器代码,我们需要注意的是,跨平台的是Java程序,而不是jvm,不同的平台有不同的jvm。

2023-02-19 08:28:02 884

原创 Java高级编程之多线程

多个cpu同时执行多个任务,如不同的人做不同的事(错误理解:并行是针对单核而言(即一个cpu),他会给人一种假象--让你认为它会同时执行多个线程,实际上对于并行而言,cpu会给他们分配时间片,时间片一到就要切换到下一个线程)是程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程,有它自身的产生、存在、消亡过程-----生命周期(个人理解:被加载到内存中的程序成为了进程,即运行中的程序)进程可进一步细化为线程,是一个程序的一条内部执行路径(个人理解:一个进程中可以有一个或多个线程,其代表不同的功能)

2023-01-06 17:44:04 43

原创 Java高级编程之常用类

String类是一个不变类,只要是改变原有String类的对象(常量除外)都会另新创建一个String类对象,不会对原有String对象造成任何影响StringBuffer是一个可变类,即该类对象的改变不用创建新的对象,只是他的底层会不断地扩容来满足空间需求,他是一个线程安全但效率不高的操作字符串的类StringBuilder同样是一个可变类,即该类对象的改变不用创建新的对象,只有他的底层会不断的扩容来满足空间需求,他是一个线程不安全但效率高的操作字符串的类。

2023-01-03 12:59:27 58

原创 java高级编程之枚举类和注解

枚举类用关键字enum来修饰,使用枚举类的前提是其对象是有限个。带有enum的枚举类默认实现了Enum接口,故其默认继承了父类的toString方法,因此我们在自己创建的枚举类中若无特别的需求就不要重写toString方法了。当需要定义一组常量时强烈建议使用枚举类。如果枚举类的对象只有一个,则可以作为单例的实现方式注解就是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取并执行相应的处理,通过Annotation程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。

2022-12-29 15:42:26 179

原创 Java高级编程之Map集合

Map被称为双列集合,典型的key,value结构。在使用contains等方法时,key所在的类要实现hashCode,equals等方法。

2022-12-28 17:46:19 521

空空如也

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

TA关注的人

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