Java

[知乎回答] Java中为为什么给float类型变量赋值需要加F,而给byte、short赋值的时候却不需要呢?

刷知乎的时候回答了一个提问,写在博客里记录一下 知乎地址:java中为为什么给float类型变量赋值需要加F,而给byte、short赋值的时候却不需要呢? - 知乎 (zhihu.com) 最近刚好在看《Java虚拟机规范》,对这类提问挺感兴趣的。在查阅百度之后,我发现一篇博客 https://www.jianshu.com/p/726eef453af9 … 阅读更多 »[知乎回答] Java中为为什么给float类型变量赋值需要加F,而给byte、short赋值的时候却不需要呢?

Java Class File Version对照表

在写逼乎的时候,发现有人因为编译器和运行环境的版本不一样,提示ClassFileVersion有关的报错,于是就Google了一下ClassFileVersion对照表,发现国内的都是比较过时的对照表,使用英文搜索后,发现了一个GitHub仓库,应该是持续更新ClassFileVersion对照表的,于是分享出来 项目仓库的网页版地址:https://jav… 阅读更多 »Java Class File Version对照表

如何通俗易懂地理解AOP?

在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低… 阅读更多 »如何通俗易懂地理解AOP?

Java如何播放/录制音频?

前言:今天早上突发奇想想要玩一玩Java自带的声音API,闲着无聊学了一下午搞明白了它的用法(没有视频光看文字果然学习效率低下) 本来其实想做一个实时翻译的功能,用Aliyun的API,但是阿里云的API好像要付费,虽然GitHub上有做好的DEMO了,还挺好,自带字幕在屏幕底部,但是没有买套餐包,所以没法用,太难了。然后闲着无聊想要搞一个耳机返听麦克风功能… 阅读更多 »Java如何播放/录制音频?

Java线程之为何wait()和notify()必须要用同步块中

就在昨天造轮子的时候,遇到了线程等待和唤醒问题,虽然这是一个基础知识wait() 和notify()/notifyAll() 方法必须用在synchronized所修饰的线程安全的块中。否则就会报错 IllegalMonitorStateException 既然都知道要这么去做,可是它的原理到底是什么呢?为什么必须再synchronized修饰的块中呢?经过… 阅读更多 »Java线程之为何wait()和notify()必须要用同步块中

GSON基础用法-如何序列化/反序列化JSON

前言:因为个人需求,用到了JSON传输数据,但是我一直在用org.json的库,用法比较繁琐复杂,难以操作。偶然的一次吐槽中,@Nothing 解决了我的这个一个问题,那就是可以使用GSON来反序列化JSON为一个Java对象,操作简单且逻辑上更加简单。 什么是GSON? GITHUB项目地址:https://github.com/google/gson G… 阅读更多 »GSON基础用法-如何序列化/反序列化JSON

页面: 1 2

浅谈如何理解线程池的概念

Java线程池是我们高并发开发当中比较常用的一个解决方案。 多用于一些处理时间短暂,但是程序量大的操作环境当中,可以有效地解决线程的创建和销毁非耗资源速度慢的问题。 什么是线程? 线程是调度CPU的最小单元,也叫做轻量级进程LWP(Light Weight Process) Java中有两种线程模型: 用户级线程(ULT)(Uer Level Thread)… 阅读更多 »浅谈如何理解线程池的概念