![](https://img-blog.csdnimg.cn/direct/90a56824daec4bb5a1c35f643ec3ca5a.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
文章平均质量分 94
本专栏旨在帮助您深入理解和应用Java的核心技术,从语言的基本原理到高级特性,让您成为一名优秀的Java开发者。
shark-chili
这个作者很懒,什么都没留下…
展开
-
maven基础总结
文章目录maven构建过程中的各个环节Maven 核心概念maven安装Maven的核心概念maven 中约定的目录结构:POM 文件基本信息依赖配置属性构建继承聚合仓库仓库的概念仓库存什么仓库的类别Maven对仓库的使用Maven的生命周期Maven常用命令(重要)maven插件常用插件坐标(gav)依赖(dependency)Maven 在 在 IDEA 中的应用File---->Settings:设置 maven 安装主目录、maven 的 settings.xml 文件和本地仓库所在位置。原创 2022-02-12 02:07:26 · 187 阅读 · 0 评论 -
为什么流不关闭会导致内存泄漏
或其他网络连接相关的对象:如果你没有关闭 Socket 或其他网络连接相关的对象,它们可能会保持与远程主机的连接状态,这会导致网络资源无法释放,这些对象将无法被垃圾回收器回收,同样也可能导致端口号占用导致其他线程无法使用该端口的情况。,我们查看它的close方法,可以看到是空实现的,原因很简单,它们操作数据流时是在内存中操作字节的,并不会持有操作系统文件资源,当然了,为了统一开发习惯,我们还是建议读者操作流时,调用一下close。对象,它会一直持有底层文件的句柄,这可能会导致文件资源无法释放。原创 2021-10-07 00:44:31 · 2332 阅读 · 0 评论 -
聊聊Java中的常用类String
并且,字符串常量拼接得到的字符串常量在编译阶段就已经被存放字符串常量池,这个得益于编译器的优化。这里说到一个叫常量折叠的概念,常量折叠就是将常量表达式计算求值,并用求得的值来替换表达式,然后放到常量表中的一种机制。会将字符串存放在方法区的字符串常量池,后续如有变量需要可以直接复用,关于字符串常量池后文会介绍。可以看到下面这段代码,调用intern 的字符串和常量池的对象==比较返回的是true。对于编译期可以确定值的字符串,也就是常量字符串 ,为了避免大量常量创建,会将其进行优化,改用。原创 2023-12-14 08:58:13 · 505 阅读 · 1 评论 -
Java实现文件分片上传
如下图,我们会将一个大文件进行切片,然后调用文件上传接口,将分片base64数据、源文件名称、分片大小、分片个数、索引号传到服务器上。这个是Spring框架自带的一个类,便于用户更好操作网络传输的文件,这个类为我们提供了很多便捷操作的API。getName() : 获取文件名 getOriginalFilename() : 返回客户端系统中原始文件名。getContentType() : 获取文件内容类型。isEmpty() : 判断文件是否为空。getSize() : 获取文件大小,以字节为单位。原创 2021-07-01 14:14:41 · 11644 阅读 · 9 评论 -
来聊聊Java为什么只有值传递
形参:即每个方法的参数,如下代码value就是一个形参实参:调用方法时传的参数,如下代码就是括号内部就是实参f(1)原创 2022-01-28 22:40:18 · 667 阅读 · 0 评论 -
Java基础BIO、NIO、AIO小结
BIO通信过程如下图所示,可以看到客户端成功与服务端建立连接后会因为等待服务端处理并响应结果而需要进行阻塞。而服务端在没有客户端发起请求时也会进入循环阻塞。并且服务端必须只有处理完这个请求后,才会去处理其他用户的请求。所以在高并发场景下,无论用户体验,还是服务器处理效率和压力都是灾难性的打击。原创 2021-10-25 10:33:06 · 868 阅读 · 0 评论 -
Java基础面试题小结
简单易学,相较于C语言和C++,没有指针的概念,所以操作和使用是会相对容易一些。平台无关性,即Java程序可以通过Java虚拟机在不同硬件不同操作系统上运行,而无需进行任何修改。面向对象:面向对象是一种程序设计技术,以木匠工作为例,使用面向对象方式实现的木匠的工作关注重点永远是制作椅子,其次才是工具。而面向过程则优先关注制作工具。与C++不同的是,Java不支持多继承,取而代之的是更加简单的接口的概念。编译与解释并存:与C++RustGo不同的是,java源代码运行时需要先编译称为字节码文件。原创 2023-12-15 08:32:11 · 5281 阅读 · 1 评论 -
Java面向对象实践小结(含面试题)
this代表调用该方法的引用,而super则代表父类对象的引用。当我们在类内部要使用自己的方法时可以使用this,要调用父类方法时,可以使用super。子类编写一个方法参数和名字都和父类一样时,就会执行子类重写的代码,并且我们需要使用@Override关键字注明这个方法是重写的方法。final关键字可以修饰类、方法、变量修饰类,则这个类不可被继承修饰方法则这个方法不可便重写修饰变量,若为引用类型则该引用指向地址不可被修改,但是引用可以被修改。若基础类型则值不可修改。原创 2023-12-10 12:50:26 · 284 阅读 · 1 评论 -
Java基础IO总结
以字符的形式读取或者写入数据,从而避免一些编码问题。utf8:英文一个字节,一个中文占3个字节。unicode:无论中文英文都占2个字节。gbk:一个英文1个字节,中文2个字节。原创 2023-12-18 10:31:56 · 291 阅读 · 1 评论 -
5000字详解面试常问的泛型知识点
泛型作为jdk1.5进入的技术,避免我们在操作集合时获取元素进行强转操作,以及其他类型元素误插入的问题。甚至他使得我们提高我们类的通用性,具体我们会在后文展开详尽介绍。Java本质就一门伪泛型语言,泛型的作用仅仅在编译期间进行类型检查的,一旦生成字节码之后,关于泛型的一切都会消失。如下所示,Integer类型数组我们完全可以通过反射将字符串存到列表中。报错Class原创 2022-01-28 00:36:41 · 1683 阅读 · 0 评论 -
聊聊Java中的异常
程序逻辑运行结果不符合预期。程序执行时抛出各种exception。因为各种原因导致服务崩溃。Javafinally无论异常是否执行,在try块结束后必定会运行的,需要注意的是如果程序出现异常,finally中有return语句的话,catch块的return将没有任何作用,代码如下所示try {return 2;return 1;原创 2023-12-14 08:58:23 · 534 阅读 · 2 评论 -
来聊聊Java的反射机制
都说反射是各种框架的灵魂,就想Spring等框架需要获取注解上的bean名称等都会用到反射这个技术,所以我们不妨基于这篇文章来简单再复习一下反射。每一个类都只会有一个Class对象,如下代码所示,他们都得得到一个true,这是为什么呢?实际上jvm在加载每个类时都会为每个类通过类加载器中的去创建一个Class对象,而且只创建一次,所以后续我们无论通过何种方式获取到的某个类的Class对象都是一样的。/*** 获取Class对象的三种方式。原创 2022-01-26 01:58:32 · 1239 阅读 · 0 评论 -
Java面向对象思想以及原理以及内存图解
面向过程:面向过程是将解决问题的思路转为一个个方法。面向对象:面向对象则是编写一个对象,将这些思路封装成一个个对象方法,后续调用这个对象解决问题,相对面向过程而言,这种思路更符合人的思维并且更易扩展、复用、维护。面向对象和面向过程性能差距:人们常常认为面向过程性能高于面向对象,因为创建的对象开销远远大于面向过程,实际上Java面向对象性能差的原因并不是这个,真正的原因是Java为半编译语言,运行并不是直接拿着二进制机械码执行,而是需要结果字节码转换这一步。原创 2023-12-13 08:38:13 · 1296 阅读 · 0 评论