在本文中,你可以了解一些可能没有听说过的有用的 Java 特性。这是我最近使用的功能的私人列表,或者是我在阅读有关 Java 的文章时偶然发现的。我不会关注语言方面,而是关注 API。 1. 延迟队列【Delay Queue】 如您所知,Java 中有许多类型的集...
前阵子在知乎上看到这个问题,一开始觉得还挺无厘头的,但细细一想却发觉这里面很考验对语言的理解。于是写下了我的理解,今天把回答搬运到这里,与大家一起分享。 这个问题看起来有点无厘头,但仔细想想却非常考验答主对 Java 这门语言的理解。如果...
在我们平常的编码中,通常会将一些对象保存起来,这主要考虑的是对象的创建成本。比如像线程资源、数据库连接资源或者 TCP 连接等,这类对象的初始化通常要花费比较长的时间,如果频繁地申请和销毁,就会耗费大量的系统资源,造成不必要的性能损失。 ...
1. 什么是Buffer 缓冲区 缓冲区(Buffer):就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区 缓冲区本质上是一个可以读写数据的内存块,可以理解成是一个数组,该对象提供了一组方法,...
在本文中,我们将学习在Java中把一个String截断到所需的字符数的集中方法。 首先,我们将探索使用JDK本身来实现这一目标的方法。然后,我们将研究如何使用一些流行的第三方库来实现这一目标。 使用JDK截断一个字符串 Java提供了许多方便的方法...
实际的业务项目开发中,大家应该对从给定的list中剔除不满足条件的元素这个操作不陌生吧? 很多同学可以立刻想出很多种实现的方式,但你想到的这些实现方式都是人畜无害的吗?很多看似正常的操作其实背后是个陷阱,很多新手可能稍不留神就会掉入其中...
通过理解和使用JVM和JVM参数,开发人员和最终用户都可以诊断故障并改进Java应用程序的性能。 当你编写源代码时,你是在编写供人类阅读的代码。在代码被编译成机器语言之前,计算机不能执行源代码。机器语言是一个通用术语,指的是特定机器所需的任意...
基本介绍 相信大家对二维码都不陌生,生活中到处充斥着扫码登录的场景,如登录网页版微信、支付宝等。最近学习了一下扫码登录的原理,感觉蛮有趣的,于是自己实现了一个简易版扫码登录的 Demo,以此记录一下学习过程。 实际上是面试的时候被问到...
今天给大家介绍一个小知识点,但是会非常的实用,就是平时我们写Java代码的时候,如果要对字符串进行切割,我们巧妙的运用一些技巧,可以把性能提升5~10倍。下面不说废话,直接来给大家上干货! 工作中常用的split()切割字符串效率高吗? 首先,我...
Java程序是基于GC的,在启动初始,就申请了足量的内存池,再加上JIT等编译器的实时优化,速度并不比直接用C++语言写的慢。Java语言同时由于反射和可观测等特点,再加上JFR这种神器,在发生问题的时候比二进制文件更容易找到它的根源。 最近在看RCA(...
四种拒绝策略: 预先配置 配置线程池。 · 核心线程和最大线程都尽量设置的小一点,分别设置成 1 和 2 小码code阻塞队列设置固定长度的有界队列,长度为 1 小码code线程工厂设置默认线程工厂 // 核心线程数 int corePoolSize = 1...
前言 大家好,一直以来我都本着用最通俗的话理解核心的知识点, 我认为所有的难点都离不开 「基础知识」 的铺垫。目前正在出一个Java多线程专题长期系列教程,从入门到进阶, 篇幅会较多, 喜欢的话,给个关注 ~ 适合人群 · 有一定的Java基础。...
好多小伙伴的项目都是Java项目,也有些朋友问我Maven主要是干嘛的,在这里就举例说明下,如有不足请大牛指正~ 说下我自己的理解:试图把软件开发过程中本该专人负责的事务性工作伪装成一门“技术”推给程序员,以便降低人工成本的一种工具。 先说...
Servlet与Servlet容器关系 Servlet 比较这两个的区别, 就得先搞清楚Servlet 的含义, Servlet (/?s?rvlit/ ) 翻译成中文就是小型应用程序或者小服务程序, 与之相类似的是Server (/?s??rv?r/), 翻译过来是服务器的意思, 可见这二者承担类似的功能,...
大家好,我是指北君。 最近面试的时候,竟然有面试官提出这样的要求:请用Java实现一个HTTP请求!当然不能怂! 雄起!!! 今天将介绍一种在 Java 中执行 HTTP 请求的方法 -- 通过使用 Java 内置的 HttpUrlConnection 类实现。 从 JDK 11 开始,Ja...
多线程是Java 中最复杂和最强大的部分 多线程章节是 Java 中最难理解和使用的章节。不幸的是,没有多少资源可以让您获得所有答案。同时,并发知识至关重要。在本文中,我解释了每个 Java 开发人员都必须了解的多线程的核心方面。在这一部分中,我们...
说到抢红包,大家肯定是很熟悉了,尤其是微信抢红包,我们几乎天天都会接触。虽然每次抢到的红包金额有大有小,但是我们都深深的沉浸在抢红包的快乐中。不过话说回来,不知道各位小伙伴有没有思考过抢红包使用的是什么算法呢?是如何实现的呢?今天我们...
最近帮一个朋友整他的课设,要求使用jsp和servlet以及mysql实现一个系统,Dao层的部分如果不借助Hibernate或者mybatis框架的话,就需要写很多的原生SQL,而且还需要处理ResultSet,最主要的是,每一个功能都需要写一个Dao文件,里面有很多需求相似的语...
前言 一般在进行项目开发时,都离不开版本控制,当前主流的版本控制工具无非就是 Git 和 SVN,而且现在 Git 的使用率可以说是已经远远超过 SVN,本文就主要看看,如何使用 IDEA + Git 来控制代码版本,让团队开发更流畅! Git 安装及配置 既然...
在电商上购买商品后,如果在下单而又没有支付的情况下,一般提示30分钟完成支付,否则订单自动。比如在京东下单为完成支付: 超过24小时,就会自动取消订单,下面使用 Java 定时器实现超时取消订单功能。 · Timer 定时器 Timer 是一个调度任...