这几种Java异常处理方法,你会吗?

2021-10-15
阅读 4 分钟
1.9k
我们在软件开发的过程中,任何语言的开发过程中都离不开异常处理。如果不处理异常,将会导致软件异常中断,崩溃,退出,严重影响用户的使用和体验。如果合理的应用异常处理那将会减少软件出现的错误,可以友好的提示用户,提升用户的体验。

教你用Java7的Fork/Join框架开发高并发程序

2021-10-11
阅读 3 分钟
1.1k
摘要:Fork/Join框架位于J.U.C(java.util.concurrent)中,是Java7中提供的用于执行并行任务的框架,其可以将大任务分割成若干个小任务,最终汇总每个小任务的结果后得到最终结果。

Interrupted Exception异常可能没你想的那么简单!

2021-10-08
阅读 3 分钟
1.9k
摘要: 当我们在调用Java对象的wait()方法或者线程的sleep()方法时,需要捕获并处理InterruptedException异常。如果我们对InterruptedException异常处理不当,则会发生我们意想不到的后果!

面试必问:Java 垃圾回收机制

2021-09-28
阅读 5 分钟
1.9k
• 在 C/C++ 中,程序员负责对象的创建和销毁。通常程序员会忽略无用对象的销毁。由于这种疏忽,在某些时候,为了创建新对象,可能没有足够的内存可用,整个程序将异常终止,导致OutOfMemoryErrors。• 但是在 Java 中,程序员不需要关心所有不再使用的对象。垃圾回收机制自动销毁这些对象。• 垃圾回收机制是守护线程的最...

Java变异出现错误:No enclosing instance of type XXX is accessible

2021-09-26
阅读 3 分钟
2.3k
摘要:写java代码时遇到下面的编译错误。本文分享自华为云社区《Java中出现No enclosing instance of type XXX is accessible问题》,作者:zhushy 。错误代码和错误现象先记录下问题现象,写java代码时遇到下面的编译错误。 {代码...} 代码如下: {代码...} 错误截图如下:如何解决这些错误错误的含义是,没有可以访问...

JVM内存模型,你看这一篇就够了

2021-09-16
阅读 7 分钟
7.5k
JVM是Java Virtual Machine(Java虚拟机)的简称,是一种用于计算设备的规范,是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。

一行Java代码实现游戏中交换装备

2021-09-14
阅读 7 分钟
1k
JDK 1.5 开始 JUC 包下提供的 Exchanger 类可用于两个线程之间交换信息。Exchanger 对象可理解为一个包含2个格子的容器,通过调用 exchanger 方法向其中的格子填充信息,当两个格子中的均被填充信息时,自动交换两个格子中的信息,然后将交换的信息返回给调用线程,从而实现两个线程的信息交换。

ReScript 与 TypeScript,谁是前端圈的“当红辣子鸡”

2021-09-06
阅读 4 分钟
3.2k
“有人的地方就有江湖,有江湖的地方就有争论”,前端开发领域也如同这个江湖,新技术诞生的同时往往也会伴随着喋喋不休的争论,作为从业者,理性看待便是,毕竟“抛开业务场景谈技术选型都是耍流氓”。不过,今天我们就“耍耍流氓”,谈一谈 ReScript 和 TypeScript 。

深入分析3种线程池执行任务的逻辑方法

2021-09-03
阅读 9 分钟
1.9k
ThreadPoolExecutor类中存在一个workers工作线程集合,用户可以向线程池中添加需要执行的任务,workers集合中的工作线程可以直接执行任务,或者从任务队列中获取任务后执行。ThreadPoolExecutor类中提供了整个线程池从创建到执行任务,再到消亡的整个流程方法。本文,就结合ThreadPoolExecutor类的源码深度分析线程池执...

如何使用TCP/IP开发网络程序

2021-08-28
阅读 6 分钟
1.9k
摘要:进行TCP协议网络程序的编写,关键在于ServerSocket套接字的熟练使用,TCP通信中所有的信息传输都是依托ServerSocket类的输入输出流进行的。

从源码分析创建线程池的4种方式

2021-08-26
阅读 8 分钟
1.8k
在Java的高并发领域,线程池一直是一个绕不开的话题。有些童鞋一直在使用线程池,但是,对于如何创建线程池仅仅停留在使用Executors工具类的方式,那么,创建线程池究竟存在哪几种方式呢?就让我们一起从创建线程池的源码来深入分析究竟有哪些方式可以创建线程池。

高并发中,那些不得不说的线程池与ThreadPoolExecutor类

2021-08-16
阅读 4 分钟
1.3k
摘要:从整体上认识下线程池中最核心的类之一——ThreadPoolExecutor,关于ThreadPoolExecutor的底层原理和源码实现,以及线程池中的其他技术细节的底层原理和源码实现。

5招教你实现多线程场景下的线程安全!

2021-08-11
阅读 4 分钟
2.5k
摘要:多线程(并发)场景下,如何编写线程安全(Thread-Safety)的程序,对于程序的正确和稳定运行有重要的意义。下面将结合示例,谈谈如何在Java语言中,实现线程安全的程序。

关于Spring注解开发教程,打包全送你

2021-08-04
阅读 6 分钟
3.9k
摘要:spring是我们web开发中必不可少的一个框架,基于传统的xml方式配置bean总觉得太过繁琐,从spring2.5之后注解的出现可以大大简化我们的配置。

SimpleDateFormat类的线程安全问题和解决方案

2021-08-04
阅读 24 分钟
2.9k
摘要:我们就一起看下在高并发下SimpleDateFormat类为何会出现安全问题,以及如何解决SimpleDateFormat类的安全问题。

知道ThreadLocal吗?一起聊聊到底有啥用

2021-08-03
阅读 8 分钟
3k
摘要:ThreadLocal是 java 提供的一个方便对象在本线程内不同方法中传递和获取的类。用它定义的变量,仅在本线程中可见和维护,不受其他线程的影响,与其他线程相互隔离。

以两种异步模型应用案例,深度解析Future接口

2021-07-30
阅读 19 分钟
1.5k
本文以实际案例的形式分析了两种异步模型,并从源码角度深度解析Future接口和FutureTask类,希望大家踏下心来,打开你的IDE,跟着文章看源码,相信你一定收获不小!

从源码角度详解Java的Callable接口

2021-07-28
阅读 10 分钟
1.3k
摘要:本文从源码角度深入解析Callable接口。本文分享自华为云社区《深入解析Callable接口》,作者: 冰 河 。本文纯干货,从源码角度深入解析Callable接口,希望大家踏下心来,打开你的IDE,跟着文章看源码,相信你一定收获不小。1.Callable接口介绍Callable接口是JDK1.5新增的泛型接口,在JDK1.8中,被声明为函数式接...

Java实战:教你如何进行数据库分库分表

2021-07-28
阅读 16 分钟
2.7k
我们知道,当前的应用都离不开数据库,随着数据库中的数据越来越多,单表突破性能上限记录时,如MySQL单表上线估计在近千万条内,当记录数继续增长时,从性能考虑,则需要进行拆分处理。而拆分分为横向拆分和纵向拆分。一般来说,采用横向拆分较多,这样的表结构是一致的,只是不同的数据存储在不同的数据库表中。其中横...

4问教你搞定java中的ThreadLocal

2021-07-28
阅读 2 分钟
1.6k
多线程访问同一个共享变量的时候容易出现并发问题,特别是多个线程对一个变量进行写入的时候,为了保证线程安全,一般使用者在访问共享变量的时候需要进行额外的同步措施才能保证线程安全性。ThreadLocal是除了加锁这种同步方式之外的一种保证一种规避多线程访问出现线程不安全的方法,当我们在创建一个变量后,如果每个...

关于线程的执行顺序,可能真的只是你以为的你以为

2021-07-26
阅读 4 分钟
2.5k
调用Thread的start()方法启动线程时,线程的执行顺序是不确定的。也就是说,在同一个方法中,连续创建多个线程后,调用线程的start()方法的顺序并不能决定线程的执行顺序。

Java的这个强大功能,很多人都不知道

2021-07-23
阅读 4 分钟
1.8k
在Java语言出现之前,很多系统都是使用C和C++开发的。Java出现之后,由于其面向对象的思想更加符合人们的思维习惯,Java也不用像C和C++那样需要程序员手动管理内存的分配和回收。说白了,就是简单好用。由于Java的诸多优点,使其一跃霸榜编程语言前排很多年。

关于单元测试的那些事儿,Mockito 都能帮你解决

2021-07-22
阅读 3 分钟
2.6k
摘要:相信每一个程序猿在写Unit Test的时候都会碰到一些令人头疼的问题:如何测试一个rest接口;如何测试一个包含客户端调用服务端的复杂方法;如何测试一个包含从数据库读取数据的复杂方法。。。这些问题mockito都可以帮我们轻松地解决。Mockito是啥?Mockito 是一个强大的用于 Java 开发的模拟测试框架, 通过 Mockito...

深度解析HashMap底层实现架构

2021-07-16
阅读 7 分钟
2.1k
Map接口大家应该都听说过吧?它是在Java中对键值对进行存储的一种常用方式,同样其中的HashMap我相信大家应该也不会陌生,一说到HashMap,我想稍微知道点的小伙伴应该都说是:这是存储键值对的,存储方式是数组加链表的形式。但是其中真正是如何进行存储以及它的底层架构是如何实现的,这些你有了解吗?

JVM面试必问:G1垃圾回收器

2021-07-15
阅读 3 分钟
2k
G1垃圾回收器是一款主要面向服务端应用的垃圾收集器。作为垃圾回收器技术发展史上里程碑的成果,G1垃圾回收器不同于以往的垃圾回收器,首先是思想上的转变,如下图:

「万字图文」史上最姨母级Java继承详解

2021-07-12
阅读 14 分钟
1.9k
在Java课堂中,所有老师不得不提到面向对象(Object Oriented),而在谈到面向对象的时候,又不得不提到面向对象的三大特征:封装、继承、多态。三大特征紧密联系而又有区别,本课程就带你学习Java的继承。

带你深入理解Java的IO到底是个啥

2021-07-09
阅读 3 分钟
1.5k
摘要:操作系统就是管家,电脑的设备就是资源,如果进程先要操作资源,必须要进行系统调用,有操作系统去处理,然后再返回给进程,这样的代理模式是不是很常见?因此app 就是你写的程序,资源就是硬盘或者其他的设备,io就是进行的系统调用。

不藏了,这些Java反射用法总结都告诉你们

2021-07-08
阅读 10 分钟
1.6k
摘要:Java反射是一种非常强大的机制,它可以在同一个系统中去检测内部的类的字段、方法和构造函数。它非常多的Java框架中,都大量应用了反射技术,如Hibernate和Spring。可以说,反射机制的特征让Java可以构建异常强大,具备柔性的系统。

java算法易筋经:常见java-API使用技巧

2021-07-06
阅读 4 分钟
1.7k
易筋经源于我国古代中医导引术,具有强健体魄、预防疾病的效果,长期以来在佛家及民间习武人士之间广为流传。算法练习的本质也在于锻炼编程思维,强化程序员的内力。因此给自己后面会持续更新的算法技巧内容简称算法易筋经。

“动态规划”这词太吓人,其实可以叫“状态缓存”

2021-06-26
阅读 4 分钟
1.8k
摘要:平时练习算法题学习算法知识时,经常会发现题解里写着“动态规划”,里面一上来就是一个复杂的dp公式,对于新人来说除了说声“妙啊”,剩下就是疑惑,他是怎么想到这个公式的?我能想到吗?这玩意工作中有用吗?