java基础
文章平均质量分 82
@我好菜啊
我要考研!!!
展开
-
项目架构的演进
单体架构项目的页面和代码都在同一个项目中,项目开发完之后直接部署在一台服务器会遇到的问题:用户对页面和代码的访问压力都会集中在一台tomcat服务器上。前后端分离前端和后端分别进行开发和部署(放在不同的服务器上)优点:将对静态资源的访问和对接口的访问进行分离,tomcat服务器指负责页面的校验集群和负载均衡优点:提供并发能力,可用性分布式基于redis实现分布式锁分布式数据库mycatredis集群数据库中间件消息中间件...原创 2021-09-13 20:37:48 · 96 阅读 · 0 评论 -
深入理解Java IO
搜前言io流用到的地方很多,就比如上传下载,传输,设计模式等…基础打扎实了,才能玩更高端的。在博主认为真正懂IO流的优秀程序员每次在使用IO流之前都会明确分析如下四点:(1)明确要操作的数据是数据源还是数据目的(也就是要读还是要写)(2)明确要操作的设备上的数据是字节还是文本(3)明确数据所在的具体设备(4)明确是否需要额外功能(比如是否需要转换流、高效流等)以上四点将会在文章告白IO流的四点明确里面小结一下,如果各位真能熟练以上四点,我...转载 2021-09-02 10:06:57 · 592 阅读 · 0 评论 -
String,StringBuilder,StringBuffer解析
1.StringString:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间。我们来看一下这张对String操作时内存变化的图:我们可以看到,初始String值为“hello”,然后在这个字符串后面加上新的字符串“world”,这个过程是需要重新在栈堆内存中开辟内存空间的,最终得到了“hello world”字符串也相应的需要开辟内存空间,这样短短的两个字符串原创 2021-08-20 09:25:29 · 173 阅读 · 0 评论 -
深入理解LinkedList
什么是LinkedList概念:LinkedList是基于链表实现的,所以先讲解一下什么是链表。链表是一种线性的存储结构,意思是将要存储的数据存在一个存储单元里面,这个存储单元里面除了存放有待存储的数据以外,还存储有其下一个存储单元的地址(下一个存储单元的地址是必要的,有些存储结构还存放有其前一个存储单元的地址),每次查找数据的时候,通过某个存储单元中的下一个存储单元的地址寻找其后面的那个存储单元。理解:LinkedList是一个双向链表,也就是说list中的每个元素,在存储自身值之外,还 额外存储原创 2021-08-15 15:38:06 · 1064 阅读 · 0 评论 -
细谈深拷贝与浅拷贝
什么是深拷贝和浅拷贝首先要明白深拷贝和浅拷贝都是针对一个已有对象的操作。在Java中,除了基本数据类型外,还存在类的实例对象这个引用数据类型。而一般使用=做赋值操作的时候,对于基本数据类型,实际上是拷贝他的值,但是对于对象而言,其实赋值的只是这个对象的引用,将原对象的引用传递过去,他们实际上还是指向的同一个对象。如果在拷贝这个对象的时候,只针对基本数据类型进行了拷贝,而对引用数据类型只是进行了引用的传递,而没有真是的创建一个新的对象,则认为是浅拷贝。反之,在对引用数据类型进行深拷贝时,创建一个新的对原创 2021-08-13 16:50:11 · 394 阅读 · 0 评论 -
深入理解Object类
官方解答说: 类Object是类层次结构的根。 每个类都有Object作为超类。 所有对象(包括数组)都实现此类的方法。 Object类属于java.lang包下,此包下的所有类在使用时无需手动导入,系统在程序编译期间自动导入。 Object类的使用//这两种类的定义的最终效果完全相同class Person{}class Person extends Object{}//可以使用Object类接收所有类的对象Object per = new Person();Ob原创 2021-08-13 10:48:31 · 492 阅读 · 0 评论 -
深入理解java泛型
泛型概念泛型,可以说是参数化类型,是将类型由原来的具体的类型参数化类似于方法中的变量参数,此时类型也定义为参数形式,然后在使用/调用的时候传入具体的类型。泛型的本质是为了参数化类型,也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类,接口和方法中,分别被称为泛型类、泛型接口、泛型方法。引入列子List arrayList = new ArrayList();arrayList.add("ssc"); //String类型arrayList.add(123);原创 2021-08-12 22:51:33 · 241 阅读 · 0 评论 -
Serializable——序列化与反序列化
序列化与反序列化概念简单来说序列化就是一种用来处理对象流的机制。所谓对象流也就是将对象的内容进行流化,流的概念这里不用多说(就是I/O)。我们可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间(注:要想将对象传输于网络必须进行流化)!在对对象流进行读写操作时会引发一些问题,而序列化机制正是用来解决这些问题的!序列化:把对象转换为字节序列的过程为对象的序列化反序列化:把字节序列恢复为对象的过程称为对象的反序列化通俗的说:数据序列化就是将数据结构或者是对象转换成我们可以转载 2021-08-12 17:42:51 · 827 阅读 · 0 评论 -
深入理解ArrayList
ArrayList简介ArrayList是一个数组队列,相当于动态数组。与Java中的数组相比,他的容量能动态增长。它继承于AbstractList,实现了List,RandomAccess,Cloneable,java.io.Serializable这些接口。public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Seriali原创 2021-08-12 16:39:27 · 360 阅读 · 0 评论 -
final关键字
1、final数据在Java中,用来告知一块数据时恒定不变的:#一个永远不会改变的编译时常量#一个在运行时被初始化的值,且不希望被改变编译时常量:在编译时执行计算式,减轻了一些运行时的负担,这类常量必须时基本数据类型,且需要用final修饰,在这个常量进行定义的时候,必须进行赋值。修饰变量# 用final关键字修饰的变量,只能进行一次赋值操作,并且生存期内不可以改变他的值。final修饰的变量可以先声明,后赋值。#final修饰基本类型时,起到常量的作用,基本类型的值不可变...原创 2021-07-18 17:15:28 · 96 阅读 · 0 评论 -
static和final
1.static存在的意义1.static可以创建独立于具体域对象的变量或者方法,这个方法或者变量不与包含它所对应的类的任何对象包含在一起。也就是说即使没有创建对象,也可以调用这个变量或者方法2.static可以用来形成静态代码块来优化程序性能。static块可以存放在类的任何一个地方,当类进行加载时,会按照static块的顺序来进行加载,并且只会加载一次。3.static可以为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至根本就不创建对象。(一个static字段对每个类来说都只有原创 2021-07-17 21:26:12 · 154 阅读 · 0 评论