JAVA基础
JAVA基础概念
MaiDouYT
写代码的道路上,越走越迷茫...
展开
-
跟着学linux安装jdk1.8
到服务器上创建目录 /usr/local/java (目录可按自己需要来)从国内镜像源下载linux jdk安装包:http://apache.apooloo.cn/#/down/f1b54d77df533af9d9de55cf3f4e2cea可以进到目录通过wget直接下载点击下载后通过ftp客户端上传到服务器解压 JDK:tar -zxvf jdk-8u202-linux-x64.tar.gz设置环境变量vi /etc/profile,在profile中添加如下内容..原创 2020-09-22 22:37:21 · 132 阅读 · 0 评论 -
Semaphore 使用和面试注意点
正常的锁(比如lock)一般都是用来只允许一个任务访问一项资源,而*计数信号量(Semaphore)*允许最多n个任务同时访问这个资源,常常被用来做流控。信号量在使用的过程中总结有如下几点需要注意的:想要执行必须要能通过 acquire() 相关方法获取许可证,否则就会被阻塞,见示例1acquire 和 release 没有绝对的先后顺序,release 可以先于 acquire 执行,且许可证的数量和初始化时么关系,见示例2acquireUninterruptibly 方法相对于 acqui.原创 2020-09-09 00:29:00 · 294 阅读 · 0 评论 -
Java注解的值能支持从文件动态读取吗?
问题背景最近遇到一个场景:有一些场景想在注解上使用变量,方便后续可以动态通过配置更新,而不需要重新编译java文件,如:@ExtractInterface(abilityId = "${abilityId}") // ${abilityId} 能否是一个变量?public class Multiplier {}注解注解是java很常用的一个特性,在JDK和各大框架中都可以看见注解的妙用。注解可以看成接口的语法糖,找个AbilityContext接口的字节码通过 javap 查看如下,很明显看出原创 2020-08-16 23:30:22 · 1587 阅读 · 0 评论 -
网络流中的 InputStream.available() 为什么会一直等于 0
问题背景最近在研究Socket编程的时候,发现书上有一个代码片段下:class Server { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(8088); Socket socket = serverSocket.accept(); InputStream inputStream =原创 2020-08-08 00:41:10 · 4296 阅读 · 0 评论 -
`Integer val = xx` 字面量是怎么赋值的?
当我们使用 Integer val = xx 赋值的时候,我们会执行哪些逻辑?对于 Integer var = 127; 可以通过javap xx.class查看对应的字节码 0: bipush 127 2: invokestatic #2 // Method java/lang/Integer.valueOf:(I)...原创 2020-05-04 10:09:30 · 238 阅读 · 0 评论 -
JAVA SPI(Service Provider Interface)初探
SPI机制是JAVA原生提供一套能力,在很多场景下都有使用到,本篇文章重点会通过示例和源码的方式来解释什么是SPI;为什么要使用SPI;如何使用SPI;JAVA是如何实现SPI; SPI思想说开去。什么是SPI先看下维基百科的定义:Service Provider Interface (SPI) is an API intended to be implemented or extende...原创 2020-02-02 01:25:41 · 300 阅读 · 0 评论