- 博客(18)
- 收藏
- 关注
原创 Spring---IOC详解2
只有当web容器销毁掉的时候才可能关闭掉,所以只要一个对象在spring容器中,在spring容器关闭之前,会一直保留。如果注入的Bean在容器中类型不唯一时,会把变量的名称作为Bean的id,在容器中查找,找到后也能注入成功。:用来创建一个对象,相当于,在类的上方定义,属性有value,用于指定bean的id,不写有默认值,默认值是类名首字母小写。它的属性value用于指定要注入的数值。System.out.println("======Student的初始化方法===========");
2024-09-19 15:20:25
992
原创 Spring---IOC详解1
通过Spring提供的IOC容器(其实就是一个工厂),可以将对象及其依赖关系交给Spring管理,避免硬编码所造成的过度程序耦合,用户也不必再为单例设计模式、读取配置文件等这些底层的操作编写代码,可以更专注上层应用的实现。Spring是一个开放源代码的设计层面的框架,他解决的是业务逻辑和其它各层的松耦合问题,它将面向接口的编程思想贯穿整个应用系统。对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递给它。控制反转即反转对象的创建方式,程序员的创建交给了Spring来完成。
2024-09-19 10:26:19
992
原创 Java基础-数组(详细版)
数组是一种线性数据结构,是一个使用连续的内存空间存放相同的数据类型的集合容器,与其他容器相比,数组的区别主要在于性能与保存基本类型的能力。在Java中,数组是一种效率最高的存储和随机访问对象的方式,通过寻址公式,随机访问的时间复杂可以达到O(1),但是为了保持空间的连续性,在数组中插入、删除数据时,都需要移动后面数据,该操作的时间复杂度为O(n)。另外,由于空间上连续,所以数组对CPU缓存比较友好,借助CPU的缓存机制,预读数组中的数据,提高访问效率。
2024-08-06 11:35:14
504
原创 Java基础-循环语句
for循环中,控制循环的变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了while循环中,控制循环的变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用。求和的变量不能定义在循环的里面,因为变量只有在所属大括号中有效。while循环:不知道循环的次数和范围只知道循环的结束条件。2)执行条件判断语句,看其结果是true还是false。for(初始化语句;如果是true,执行循环体语句。while(条件判断语句){3)执行条件控制语句。
2024-07-23 11:00:15
235
原创 Java经典面试题-7
反之,如果一个正在执行某个操作的线程必须要正确地关闭掉否则就会出现不好的后果的话,那么这个线程就不能是守护线程,而是用户线程,通常都是些关键的事务,比方说,数库录入或者更新,这些操们都是不能中断的。守护线程:为所有非守护线程提供服务的线程,任何一个守护线程都是整个JVM中所有非守护线程的保姆;GC垃圾回收线程:就是一个经典的护线程,我们的程序中不再有任何运行的Thread,程序就不会再产生垃圾,垃圾回收器也就无事可做,所以当垃圾回收线程是JVM上仅剩的线程时,垃圾回收线程会自动离开。守护线程的作用是什么?
2024-07-23 09:59:36
446
原创 Java经典面试题-6
(1)、等待阻塞:运行的线程执行wait方法,该线程会释放占用的所白资源,JVM会把该线程放入"等待池"中,进入这个状态后,是不能自动唤醒的,必须依靠其他线程调用nolify或nolifyAII方法才能被唤,wait是objecl类的方治。所有需要竞争同步锁的线程都会放在锁池当中,比如当前对象的锁已经被其中一个线程得到,则其他线程需要在这个锁池进行等待,当前面的线程释放同步锁后锁池中的线程去竞争同步锁,当某个线程得到后会进入就绪队列进行等待cpu资源分配。是每个线程独有的,保存其运行状态和局部自动变量的。
2024-07-22 14:36:13
767
原创 Java经典面试题-5
每一种平台的解释器是不同的,但是实现的虚拟机是相问的。Java源程序经过编译器编译后变成字节码,字节码由虚似机解释执行,虚拟机将每一条执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。在java中,这种供虛拟机理解的代码叫做 字节码(即护展名为 .class的文件),它不面向任何特定的处理器,只面向虚拟机。同时也避免了类的重复加载,因为JVM中区分不同类,不仅仅是根据类名,相同的 class文件被不同的ClassLoader加载就是不同的两个类。(空指针,程序员可以处理)
2024-07-22 14:00:33
267
原创 Java经典面试题-4
ArrayList:基于动态数组,连续内存存储,适合下标访问(随机访问),扩容机制:因为数组长度固定,超出长度存数据时需要新建数组,然后将老数组的数据拷贝到新数组,如果不是尾部插入数据还会涉及到元素的移动(往后复制一份,插入新元素),使用尾插法并指定初始容量可以极大提升性能、其至超过LinkedList(需要创建大量的node对象)冲突,先进行equal比较,相同则取代该元素,不同,则判断链表高度插入链表,链表高度达到8,并且数组长度到64则转变为红黑树,长度低于6则将红黑树转回链表。
2024-07-19 10:58:14
369
原创 Java经典面试题-3
它实际上是返回一个int整数,这个哈希的作用是确定该对象在哈希表中的承引位置,hashCode()定义在JDK的0bjecl.java中,java中的任何类都包含有hashCode() 函数。当不同的类具有某些相同的行为(记为行为集合A),且其中一部分行为的实现方式一致时(A的非真子集,记为B),可以让这些类都派生于一个抽象类。接口的设计目的,是对类的行为进行约束(更准确的说是一种“有”约束,因为接口不能规定类不可以有什么行为),也就是提供一种机制,可以强制要求不同的类具有相同的行为。(先有子类后有父类)
2024-07-19 10:00:17
398
原创 Java经典面试题-2
这里就出现了一个矛盾:内部类对象访问了一个不存在的变量,为了解决这个问题,就将局部变量复制了一份作为内部类的成员变量,这样当局部交量死亡后,内部类仍可以访问它,实际访问的是局部交量的"copy"。就将局部变量设置为final,对它初始化后,我就不让你再去修改这个变量,就保证了内部类的成员变量和方法的局部变量的一致性。将局部变量复制为内部类的成员变量时,必须保证这两个变量是一样的,也就是如果我们在内部类中修改了成员变量,方法中的局部受量也得跟着改变,怎么解决问题呢?但是引用的值是可变的。
2024-07-18 15:42:37
1054
原创 Java经典面试题-1
当创建 String类型的对象时,虚拟机会在常量池中查找有没有已经存在的值和要创建的值相同的对象,如果有就把它赋给当前引用。String中的 equals方法是被重写过的,因为 Object的 equals方法是比较的对象的内存地址,而 String的 equals方法比较的是对象的值。4、清洗--->5、烘干。操作数据库,我们不需要关心链接是如何建立的、sql是如何执行的,只需要引入mybatis,调方法即可。==对比的是栈中的值,基本数据类型是变量值,引用类型是堆中内存对象的地址。
2024-07-18 14:54:35
396
原创 用数组模拟环形队列——2
在上一篇的文章中我们介绍了队列的使用,但是普通的队列存在资源浪费的问题,为了解决这个问题,又提出了环形队列,今天,我们就详细介绍一下环形队列的使用方法。1.队列的存储结构是一个环形结构,即队列的头尾相连,形成一个环形。3.队列的插入和删除操作只能在对头和队尾来实现,不能在中间进行。以上就是环形队列的实现形式,你学会了吗?2.队列有固定的大小,通常用数组来实现。下面来看看环形队列具体的实现。
2024-07-17 13:58:44
409
原创 Java基础-switch语句的知识扩展
在前面的一片文章中,我们介绍了switch语句的基本用法,其实switch语句还有很多的表示方法,在这篇文章中,我将介绍switch语句的其他表示方法。1.switch的新特性是在jdk12后才有的,所以jdk12之前的版本是无法使用这种格式的。如果匹配上了,就会执行对应的语句体,如果此时发现了break,那么结束整个swirch语句。需求:键盘录入星期数,输出工作日,休息日(1-5)工作日,(6-7)休息日。通过代码的运行,更加证明了default的省略情况。1.产生的原因:语句中没有break导致的。
2024-07-16 15:32:21
474
原创 利用Python爬取在线食品数据
在大量的数据中提取出重要的数据,进行建模分析对企业来说是至关重要的,影响着企业的决策。今天我们来爬取一个在线食品售卖的数据。以上就是数据爬取与分析的过程流程。
2024-07-16 09:32:32
241
原创 Java基础-分支语句(switch语句)
注意:case后面的值只能是字面量,不能是变量;case的值是不能重复的,否则就会进行报错。switch语句也是一种分支语句,通常进行选择。这就是switch语句的使用。switch(表达式){
2024-07-15 23:30:40
176
原创 Java基础-分支结构(if语句)
注意:如果对一个布尔类型的变量进行判断,不要用==号,直接把变量写在小括号中,这样写是为了避免将==和=写混。这就是if语句的三种格式,按照所给条件选择合适的语句。if语句通常用来进行判断,有三种格式。}else if(关系表达式2){对输入的变量进行判断。if(关系表达式){if(关系表达式){if(关系表达式){
2024-07-15 23:26:54
344
原创 用数组模拟队列-1
System.out.printf("队列头的数据是",res);front = -1;System.out.println("队列满,不能加入数据");System.out.println("a(add):添加数据队列");System.out.println("g(get):取出队列数据");System.out.println("h(head):查看队列头");System.out.println("s(show):显示队列");System.out.println("s(exit):退出程序");
2024-03-16 11:33:28
1180
1
原创 Java语言基础组成
(2)用于语句:break,case,catch,continue,default,do,else,for,if,return,switch,try,while,finally,throw,this,super。Java关键字是电脑语言里事先定义的,有特殊意义的字符串,有时又叫保留字,还有特别意义的变量。其实就是编译器和程序员的一个约定,程序员利用关键字来告诉编译器其声名的变量类型,类,方法特性等信息。goto,const,null不是关键字,而是文字,但同样不能作为标识符使用。
2023-09-06 20:00:58
73
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人