JavaSE
文章平均质量分 85
记录一些对Java语言的个人理解
懒羊羊.java
如果没有世俗的枷锁 我想我能飞得更远
展开
-
我的创作纪念日——一年的时间可以改变很多
一年以来的心路历程原创 2023-03-19 19:51:00 · 1664 阅读 · 46 评论 -
学完Spring框架回头再来看反射你会发现真的不一样
在以前,调用类成员的方式基本上是通过"new()."的方式,这样做修改了源码,不符合OCP原则,反射的引入可以通过外部配置文件,在不修改源码的基础上控制程序,符合OCP原则。它是Java中很多高级特性的基础,比如注解、动态代理。各类的ORM框架、RPC框架、Spring的IOC、AOP都是以反射作为技术基础的。原创 2022-11-25 11:21:49 · 2142 阅读 · 14 评论 -
通信基石Socket结合OOP实现程序间的通信
看了一下关于Socket的知识点好像面试十分高频,它作为通信的基石许多组件,框架都是在他的基础之上进行封装,确实有必要深入了解一下特别是网络编程结合I/O操作来要求你实现一个网络聊天室,如果面试官突然问到你 你能娓娓道来吗?原创 2022-11-23 11:08:43 · 1009 阅读 · 6 评论 -
深入理解= = 、equals()与hashcode()的关系
最近也是在读Hollis的《深入理解Java核心技术》里面一节讲到了equals()和hashcode()的关系,对于这个高频面试点,咱们需要认真理清一下几者之间的关系原创 2022-09-11 08:30:39 · 1118 阅读 · 74 评论 -
通过数组模拟理解队列、环形队列
队列类似于数组,遵循着先入先出的原则,实际生活中的排队场景就是这一特征的体现,队首的人总是先完成办理。独特的数据结构特征注定会应用于特殊的场景原创 2022-08-17 12:24:05 · 364 阅读 · 20 评论 -
【Spring】纯注解开发模式简直就是Spring中的Spring
注解本质是一个继承了Annotation 的特殊接口,其具体实现类是Java 运行时生成的动态代理类。原创 2022-07-28 08:15:00 · 5840 阅读 · 179 评论 -
【Spring】IOC与解耦合
回想写过的图书管理系统、租房系统、电影院卖票系统都是基于原生的JavaSE、OOP,没有用到任何框架,在层与层的关系中一个类要想获得与其他类的联系主要的方式还是靠new,这就导致层与层之间、对象与对象之间的依赖性强“动一发而迁全身”。特别是在处理数据层和业务层之间时,由于对象没有统一管理导致很复杂!而Spring中的IOC就很好地解决了这一问题,降低耦合就是它的一大特色...........................原创 2022-07-20 08:30:00 · 8028 阅读 · 154 评论 -
【Maven】maven安装、IDEA创建maven的web项目、添加依赖、集成Tomcat
朋友们在写后端的过程中,遇到功能复杂的业务时需要导入不同的jar包,安装不同的插件。在合作开发的过程中就会存在与别人版本不兼容的问题,使用maven来集成创建项目就会极大改善这一点虽然现在还处于学生阶段,所涉及的项目复杂度还很低没有遇到过这样的开发场景,现在初步了解操作一下做点儿提前量,为以后做准备............原创 2022-07-05 08:00:00 · 2016 阅读 · 79 评论 -
在项目开发中的Logback日志框架技术
日志框架技术和异常处理比较类似,它通过将信息记录到系统文件中来帮助开发者检查程序运行情况,这也是在做小项目过程中偶然听到的一个概念,想着很陌生,抱着查缺补漏的心态完善一下对日志框架技术的认知了解......原创 2022-07-01 14:23:12 · 959 阅读 · 76 评论 -
从java代码到网络编程
在计网的基础之上,设备之间的通信是通过网络实现数据传输,将数据通过网络从一台设备传输到另一台设备。在前面的学习中我们知道java.lang包提供基础类库、java.io包中提供io功能的函数,而java.net包中则提供了用于网络连接的类或接口来让我们实现网络通信,其实Java网络编程的本质还是面向接口和类编程..................原创 2022-06-29 08:00:00 · 2448 阅读 · 159 评论 -
【OOP】面向对象实战训练,登录、注册、买票、查询、删改等业务场景后端设计
锻炼的是面向对象思想的实现,针对不同场景应该用什么样的集合容器来存储数据,什么时候该用泛型,什么时候该用分支控制语句,什么时候要避免使用if-else.进一步理解所谓的通过继承提高程序的扩展性,复用性,以及封装类来保证数据的安全性、一致性...........................原创 2022-06-25 23:12:46 · 601 阅读 · 99 评论 -
【高并发基石】多线程、守护线程、线程安全、线程同步、互斥锁
很久之前就听过互联架构中有三高,高可用、高并发、高性能,多线程是处理高并发问题的基石,起步阶段一定要对线程有一个系统深刻的印象,为以后做准备原创 2022-06-23 23:21:16 · 3557 阅读 · 120 评论 -
【随笔】再见IE浏览器,一个时代的印记从此消失
“21世纪20年代或许真的是纵观整个人类历史也非常特别的一段时间,IE退役也是这个时代大事件中一颗小小的星星。很多年后,我们的下一代、下下一代可能已经不知道IE曾经的存在,但起码今天,此时此刻,这是属于IE的最后一个瞬间,被很多人铭记着。”...原创 2022-06-16 14:59:26 · 972 阅读 · 20 评论 -
【JavaSE】深入浅出掌握泛型及泛型相关细节(图文并茂)
泛型—— 一种可以接收数据类型的数据类型我们都知道,继承是面向对象的三大特性之一,比如在我们向集合中添加元素的过程中add()方法里填入的是Object类,而Object又是所有类的父类,这就产生了一个问题——添加的类型无法做到统一 由此就可能产生在遍历集合取出元素时类型不统一而报错问题。 例如:我向一个ArrayList集合中添加Person类的对象,但是不小心手贱添加了一个Boy类的对象,这就会导致如下结果 .........原创 2022-06-16 07:33:43 · 952 阅读 · 49 评论 -
【JavaSE】追根溯源全面上手集合(建议反复观看)
ArrayList:数据结构是数组,查询快,增删慢,线程不安全,效率高,存取顺序一致可重复LinkedList:数据结构是链表,查询慢,增删快,线程不安全,效率高,存取顺序一致可重复Vector(很少用) :数据结构是数组,查询快,增删慢,线程安全,效率低,存取顺序一致可重复HashSet:数据结构是哈希表,查询快,增删慢,线程不安全,效率高,存取顺序不一致不可重复LinkedHashSet:数据结构是链表+哈希表,查询快,增删慢,线程不安全,效率高,存取顺序一致不可重复TreeSet:数据结构是原创 2022-06-09 07:36:54 · 609 阅读 · 49 评论 -
【JavaSE】ArrayList、Vector、LinkedList扩容的底层实现原理
编程语言是实现人类思维的一种工具,想到扩容这一问题首先应该学会联系生活实际,在当前容量不够的前提下我们会选择扩容,而这一句话就包含两个核心要素:1.判断容量是否足够 2.扩大容量通过集合添加元素的过程就是这两点的隐式重复...原创 2022-06-06 12:29:55 · 1126 阅读 · 45 评论 -
【JavaSE】字符串反转、自定义排序、注册问题、数据类型统计
刷dy刷了十个视频五个视频讲字符串、排序和相关的面试题,不禁心头一震写下此文,又温习了一遍排序,和算法> 想当初比赛的时候,被一个反转指定字符串折磨的半死不活,再也不想回到过去了......原创 2022-06-03 22:45:16 · 421 阅读 · 20 评论 -
【Javaweb】Web工作原理、两种网页、两种脚本
之所以叫Javaweb是因为Java对Web领域的发展注入了强大的动力是web领域的主流脚本语言一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念"一次编译,到处运行"决定了它的高度.........原创 2022-06-01 10:46:14 · 2144 阅读 · 45 评论 -
【JavaSE】从JVM理解String、StringBuffer类
String类是Java类中最重要也是最常用的一个大类,它包含了大量的成员方法功能十分强大,类的存在往往伴随着对象的创建,类的加载,引用类型的数据就存在地址的指向问题,而这在JVM中就有生动的体现原创 2022-05-30 22:00:24 · 758 阅读 · 49 评论 -
【随笔】面向对象类的特性之上为什么Integer integer = 1;不报错?
在旧版本JDK(JDK5之前)的基础上,装箱操作就是通过向valueOf()方法里传入基本数据类型然后通过方法本身的逻辑返回包装类类型达到类型匹配的效果,而拆箱就反之这两者体现的是面向对象的特点——通过类加载,初始化类,调用类的成员方法等不同方式让对象的引用指向堆中的对象原创 2022-05-27 00:15:54 · 561 阅读 · 4 评论 -
【JavaSE】基于Exception类的异常以及异常处理
异常和break有一点点类似,都可以让程序停止运行。异常的发生和人生病是一个道理,处理异常就是看病过程的一种抽象形式,异常处理保证了程序的健壮性,在以后的开发过程中有着举足轻重的作用。当我深入了解异常,发现原来每一种异常都是一个一个进行封装过的类,他们也存在着继承关系。其实,异常也是面向对象特性的一种体现!原创 2022-05-24 15:00:10 · 841 阅读 · 25 评论 -
【JavaSE】枚举类——规范的类
> 《北史·恩幸传序》:"其间盗官卖爵,污辱宫闱者多矣,亦何可**枚举**哉。" 从词中不难看出,所谓的枚举就是一> 一列举出来,枚举拥有很明显的一个特征,我列举出来的对象已经具有了某种属性,枚举的结果是令别人观察的一种方式,即所谓的**只读性**> 在面向对象过程中不断强调简化,高效的特性,但枚举类在以往类的基础上更像是一种规范类原创 2022-05-21 08:30:00 · 824 阅读 · 24 评论 -
【JavaSE】四大内部类
匿名内部类是用来简化开发的,他并没有什么新颖的功能,只是能把复杂的问题简单化,比如在一个功能中,一个类(或者接口)之下我有很多子类要去继承(或者实现),按照常理,我需要一个一个子类地去写出来,并且实例化来调用类下的成员,但是使用匿名内部类,就不需要进行上述的重复操作,我只需要通过匿名内部类针对父类(或者接口)创建相应对象,在类内部重写方法即可.原创 2022-05-18 22:17:26 · 282 阅读 · 12 评论 -
【JavaSE】接口,接口与继承,接口与多态
在面向对象的基础之上,接口的出现是类性质的一种完善,是继承机制的一种补充,是体现多态性的一中形式。从生活实际出发,接口把它之下一系列复杂的逻辑,功能等通过“实现接口”的方式封装简化出来,只通过连接一个小小的口子就轻而易举地实现了,背后实则很复杂的功能。我想这就是接口存在的意义所在吧。接口⭐一.定义及语法🟠定义给出一些没有实现的方法,封装到一起,到某个类要使用原创 2022-05-15 13:27:36 · 460 阅读 · 11 评论 -
【JavaSE】final与abstract关键字
final和abstract都用于修饰类的成员,存在的意义都是用于优化限定,让类与类之间,类和成员之间变得更加灵活,结合方式更加多元,从而更加高效,简便地实现各种需求和功能。abstract体现的抽象思想是提高代码复用性的重要映射原创 2022-05-14 18:56:34 · 690 阅读 · 2 评论 -
【JavaSE】代码块
代码块类似于一种优化(补充)构造器的机制,也是类中的一部分,按照路线学习java的过程中不断体会到了各种优化基础思维的新东西,我想以后的SSM应该也是这种思想的一种延续,成员原创 2022-05-12 15:08:29 · 437 阅读 · 11 评论 -
【JavaSE】public static void main (String[] args)
前言调用了那么多次的main方法,好像从来没有深入了解过它的语法及构成,今天深入了解一下 public static void main(String[] args) {}1.public从Java运行机制来看:1.Java源代码通过javac编译器编译成.class的类文件2.JVM中的类加载器来加载这个类文件到数据区,补充一下--类加载器主要有:Bootstrap类加载器Extension类加载器和System类加载器理解:从上述两步操作可以看出,我们写的代码其实是J.原创 2022-05-09 15:42:58 · 1138 阅读 · 10 评论 -
【OOP】租房系统复盘总结
学习目录前言一.需求二.分层设计三.具体功能1.显示主菜单功能2.查找房源功能3.增添房源功能4.删除房源功能5.修改房屋功能6.显示房源功能7.退出校验功能8.用户入口前言通过这个小项目,加深入了我Java面向对象的理解,树立了编程重视逻辑的认知,以及对细节的处理能力,对需求的实现能力,以下是我对这个小项目的理解:~还有很多前端页面没有写,也没有连接数据库就当作是个半成品吧.这是跟着老韩做的有没有小伙伴也跟着写过呢哈哈哈一.需求实现基于文本界面的房屋出租软件。能够实现对房屋信息的添加、修改和原创 2022-05-07 21:51:24 · 400 阅读 · 8 评论 -
【JavaSE】super关键字
学习目录一.super使用场景二.super用法三.super使用细节四.super越级访问五. super与this一.super使用场景在继承关系中,子类的无参构造器默认super()调用父类的访问父类的属性和方法调用父类构造器二.super用法super代表父类的引用,它用于访问父类的属性,方法,构造器建立在继承关系之上,依照访问修饰符遵循相应的访问规则super大部分情况下是可以省略的,子类需要访问父类时,需要显式地写出来1.super访问父类属性: public void h原创 2022-05-03 16:18:03 · 535 阅读 · 10 评论 -
【OOP】多 态
学习目录一.多态的定义二.多态的作用三.多态的体现四.多态使用细节1.向上转型2.向下转型五.动态绑定机制六.多态数组在没有接触多态以前,我们在主函数调用方法和属性时,一般是通过对象实例化相应的类来实现的,这十分复杂繁琐,特别是在以后如果遇到一个父类的子类非常的多,那工程量就十分的庞大!因此多态的作用与地位就显得十分的重要。一.多态的定义“一个接口,多种实现”——多态是一种性质方法或对象具有多种形态。多态(polymorphism)指为不同数据类型的实体提供统一的接口。多态允许将子类的对象当作父类的原创 2022-04-28 08:15:00 · 885 阅读 · 8 评论 -
【JavaSE】Calendar类--时间类
Java官方推荐使用Calendar来替换Date的使用calendar类最重要的静态方法----getInstance()对象是类的实例,类是对象的模板(calendar类作为一个抽象类使用时需要我们定义一个对象)常见属性如下1.学会利用getInstance静态方法得到其子类(当前时间数据)代码如下 Calendar c=Calendar.getInstance(); System.out.println(c.get(Calendar.YEAR));//得到年份 Syst原创 2022-03-10 22:34:52 · 105 阅读 · 2 评论 -
【OOP】封装与继承
【OOP】封装与继承学习目录一. 封装二. 继承三. 继承的本质学习目录一. 封装1.定义封装(Encapsulation)把抽象出的数据(属性)和对数据的操作(方法)封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的操作(方法)才能对数据进行操作访问生活中电视机遥控器就是一个封装的产物2.好处①隐藏实现的细节②对数据进行验证,保证安全合理3.实现步骤将属性私有化(private)——>提供一个公共的(public)set 方法用于对属性判断赋值——>提供一个公共原创 2022-04-25 18:38:00 · 1012 阅读 · 6 评论