当前位置:首页 > IT问答库 > Java基础知识

Java基础知识

· 请求转发与重定向,傻傻分不清?看这篇文章试试

关于Web开发中的页面跳转,通常有两种跳转方式,重定向与转发。可能有很多同学不知道两种跳转的细节区别,只知道都能跳转到目标页面,实际上这两种跳转方式细化后,会发现有很多不同之处。接下来,就给各位同学们梳理下这两种跳转的具体区别。

· 什么Maven?项目为什么选用maven进行构建?

maven的主要功能点主要分为5点:- 依赖管理系统- 多模块构建- 一致的项目结构- 一致的构建模型和插件机制。使用maven,可以将不同的系统的依赖进行统一管理,并且可以进行依赖之间的传递和继承。

· 处理大文件排序的方式--外部排序

一般来说,对一个数组的排序,我们常用冒泡排序、快速排序、堆排序等算法进行排序。这样的数组能够一次性加载到内存中,使用上述的排序算法就能轻而易举进行排序,所以上述的排序算法可以称之为堆内排序。

· HashMap和HashTable有什么区别?

- HashMap是非synchronized,而HashTable 是synchronized,这意味着HashTable是线程安全的,多个线程可以共享一个HashTable;而如果没有正确的同步的话,多个线程是不能共享HashMap 的。Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的扩展性更好。

· hashcode是什么?有什么作用?

hashcode()方法主要配合基于散列的集合一起使用,比如HashSet、HashMap、HashTable。当集合需要添加新的对象时,先调用这个对象的hashcode()方法,得到对应的hashcode值,实际上hashmap中会有一个table保存已经存进去的对象的hashcode值,如果table中没有改hashcode值,则直接存入,如果有,就调用equals方法与新元素进行比较,相同就不存了,不同就存入。

· ArrayList和LinkedList的区别?分别用在什么场景

①ArrayList和LinkedList可想从名字分析,它们一个是Array(动态数组)的数据结构,一个是Link(链表)的数据结构,此外,它们两个都是对List接口的实现。 前者是数组队列,相当于动态数组;后者为双向链表结构,也可当作堆栈、队列、双端队列。

· BIO、NIO、AIO有什么区别?

AIO是异步IO的缩写,虽然NIO在网络操作中,提供了非阻塞的方法,但是NIO的IO行为还是同步的。对于NIO来说,我们的业务线程是在IO操作准备好时,得到通知,接着就由这个线程自行进行 IO操作,IO操作本身是同步的。

· synchronized 和 ReentrantLock区别是什么?

synchronized是和if、else、for、while一样的关键字,ReentrantLock是类,这是二者的本质区别。既然ReentrantLock是类,那么它就提供了比synchronized更多更灵活的特性,可以被继承、可以有方法、可以有各种各样的类变量。

· Java基本类型之间是如何进行转换的?

在Java中,将一种类型的值赋给另一种类型是很常见的,在这个赋值过程中有可能会进行类型的转换,转换分为自动转换和强制转换。自动类型转换(隐式转换)无需进行任何操作,而强制类型转换则需要显式转换,即需要使用强制转换操作符(type)。

· 实战应用|在ElasticSearch中有哪些”大坑“需要避免

对于elasticsearch,想必大家应该都不陌生,它广泛应用于站内搜索,海量数据的处理等业务场景中。本文主要是给大家聊聊,在使用ElasticSearch进行业务开发时,曾经遇到过的意想不到的一个”大坑“。

· 开发必懂|Spring-retry 框架的底层原理详解

【强制】并发修改同一记录时,避免更新丢失,需要加锁。要么在应用层加锁,要么在缓存加锁,要么在数据库层使用乐观锁,使用 version 作为更新依据。说明:如果每次访问冲突概率小于 20%,推荐使用乐观锁,否则使用悲观锁。乐观锁的重试次数不得小于 3 次。

· 利用Java实现的图片中文字识别,你学会了吗?

先说到读取文件,我们耳熟能详的肯定就是使用I/O流进行文件的读取,但如果是要将图片里面的文字提取出来又该如何去做呢?首先我们想一想,文件的底层是不是就是一个二进制文件呢?当我们想要去获取其中的数据时,是不是会有一些二进制规范呢?我们将这种二进制规范解析出来,是否就能得到文字信息了呢?

全国咨询热线400-811-9990