Java工具箱

简介: 本文类似于一个Java开发的“工具箱”,会记录一些Java开发者常用到的工具,例如:工具的一些环境配置、常用的技术网站等。本文不会一下子就有很多内容,会不断的完善。

前言


本文类似于一个Java开发的工具箱,会记录一些Java开发者常用到的工具,例如:工具的一些环境配置、常用的技术网站等。本文不会一下子就有很多内容,会不断的完善。

 

一、JDK环境变量配置


Windows环境


1.首先下载一个JDKexe安装文件,JDK官方下载地址:JDK8JDK最新版

2.将下载好的JDK安装到本地,例如:C:\Program Files\Java\jdk1.8.0_191

3.进入环境变量配置页面:右键我的电脑 -> 属性 -> 高级系统配置-> 环境变量

4.系统变量中新建JAVA_HOME变量,变量名:JAVA_HOME,变量值:JDK根目录,如:C:\Program Files\Java\jdk1.8.0_191

5.系统变量中新建CLASSPATH变量,变量名:CLASSPATH,变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

6.编辑系统变量中的Path变量,在Path变量值的后面加上:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin(如果原来Path变量值的最后面没有带 ; 号,则必须加上)

7.在命令行中输入java -version,显示出JDK信息,则安装成功

image.png


Linux环境


1.首先下载一个JDK的压缩包,JDK官方下载地址:JDK8JDK最新版

2.将下载好的JDK解压到本地,例如:/usr/local/java/jdk1.8.0_191,解压命令:

tar -zxvf jdk-8u191-linux-x64.tar.gz /usr/local/java/

3.修改配置文件,添加JDK环境变量:vi /etc/profile,在文件末尾添加代码:

export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$HOME/bin:$HOME/.local/bin:$PATH

4.重新加载配置文件:source /etc/profile

5.输入java -version,显示出JDK信息,则安装成功

image.png

 

二、命令行访问阿里云服务器


1.登陆阿里云官网,并进入云服务器ECS的实例列表

image.png


2.在本地打开命令行窗口(Windows自带的命令行可能不行,这边使用的Git Bash),使用命令:ssh root@IP,登陆远程服务器,如果密码忘了,看下面步骤3

image.png

 

3.命令行访问云服务器的密码在阿里云里称为实例密码,修改实例密码:云服务器实例ECS -> 实例 -> 更多-> 密码/密钥 -> 重置实例密码

image.png



4.本地上传文件到云服务器,使用命令:scp 本地文件路径 root@IP:云服务器路径


#将本地文件open-joonwhee-acm-1.0.0-SNAPSHOT.jar上传到IP为47.98.174.220服务器的/home/work/目录
scp f://alicloud//open-joonwhee-acm-1.0.0-SNAPSHOT.jar root@47.98.174.220:/home/work/

image.png

 

三、各个方向优秀的作者博客


HTTP 肖佳:https://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html

Redis 黄健宏:http://blog.huangz.me/

JVM R大:https://zhuanlan.zhihu.com/p/25042028

 

四、Linux常用命令


查看公网IPcurl cip.cc

删除文件:rm a.txt

查看端口号是否被占用:netstat -tunlp|grep 端口号  

重启nginx./nginx -s reload

执行脚本:./run.sh,不能直接用:run.sh,否则会去PATH找而不是当前路径

 

五、IntelliJ IDEA常用


5.1 快捷键生成 serialVersionUID

在默认情况下,实现了Serializable接口的类,无法通过快捷键快速生成serialVersionIUID

image.png

进行配置:Editor -> InspectionsSerializable class without `serialVersionUID` 勾上

image.png

配置后在使用快捷键即可快速生成 serialVersionIUID

image.png 

 

5.2 Autowire注解报错


Autowire注解报错:“Could not auwowire. No beans of 'UserService' type found”,一般出现在注入其他服务的Bean,但是我们确认该 Bean 是可以成功注入的。


进行配置:Editor -> InspectionsAutowiring for Bean Class Severity 修改为 Warning

image.png

配置后,红色的报错消失。

image.png

 

5.3 IDEA常用的插件


安装插件的页面如下,Custom目录下的为用户自己添加的插件。

image.png

Alibaba Java Coding Guidelines

阿里巴巴Java 编码指南。会提示用户哪些代码使用不规范,有利于提升自己的编码风格。


Free Mybatis plugin

Mybatis 的一款插件。只要是用来进行一些 Mybatis 方面的快捷操作,例如在接口和 XML 文件来回跳转。

image.png

Lombok plugin

lombok 插件。使用 lombok 时,不安装插件会有报错。

 

5.4 显示快捷文档


Eclipse 下,将鼠标移动到某个类上,会有一个浮动的窗口显示这个类的快捷文档信息。而 IDEA 默认是没有显示的,可以通过以下配置使用此功能。

 image.png

展示出来的效果如下:

image.png


这边还可以通过快捷窗口右上角的按钮将快捷窗口变为一个工具窗口,效果如下。通常,我会在复制源码中的注释时,使用到此功能。因为源码中的注释是带各种标签的,而通过快捷文档复制的注释是已经将标签解析过了。

image.png


六、趣谈分布式系统概念


你女朋友是高可用么?分布式系统的概念,技术来源于恋爱,又高于恋爱。

1.高可用:就算失恋了,可以迅速和另一个女生恋爱,永远不会是单身状态

2.注册中心:你和你女朋友去民政局登记,民政局就是注册中心,掉线的代价就是离婚

3.负载均衡:你和多个女朋友轮流约会。星期一,三,五跟A约会,二,四,六和B约会,叫RoundRibon算法

4.熔断限流:跟多个女朋友约会,你身体吃得消么?你要保护自己,星期天就好好休息

5.API网关:相亲前的媒婆,你和女生不会直接交流,由媒婆代为传递信息

6.雪崩:无法正确处理好几个女朋友的恋爱关系,很可怕的

7.阻塞:本来和A约会,A有事没来,B又急切想和你约会,但你赶不过去

8.同步:一次只和一个女生约会;异步:一次和好几个女生约会

9.异步线程不安全:一次和好几个女生约会当然不安全,弄不好连名字都叫错

10.分布式锁:同时和好几个女生约会的时候,保证不会被其他女生撞见

11.分布式缓存:你有钱,房间开了一个月,每次约会直接去好了,不需要重新开房

12.分布式消息队列:你一约她,她就来。每次结束后,她会主动离开,你不call她,她也不会来

13.分布式事务:当你离婚后很痛苦,希望没和她结婚过,希望没和她生过孩子,一切希望回到婚前的模样。所以,分布式事务很难

14.异地多活:你出差到任何城市,都有女朋友跟你约会

 

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
算法 Java 数据安全/隐私保护
Java:Hutool工具箱之Hutool-crypto加密解密
Java:Hutool工具箱之Hutool-crypto加密解密
2461 0
Java:Hutool工具箱之Hutool-crypto加密解密
|
5月前
|
存储 安全 Java
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
64 1
|
5月前
|
Java API Apache
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(基础编程篇)
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(基础编程篇)
68 0
|
JSON Java 数据格式
Java:Hutool工具箱之hutool-jsonJSON数据读取转换处理
Java:Hutool工具箱之hutool-jsonJSON数据读取转换处理
1318 0
|
Java
Java问题排查工具箱
问题排查除了最重要的解决思路和逻辑推导能力外,工具也是不可缺少的一部分,一个好用的工具可以事半功倍,甚至在某些情况下会因为没有相应的工具而压根就没法继续进行下去,这篇文章就来讲讲在排查Java问题时通常要用到的一些工...
6142 0
|
机器学习/深度学习 固态存储 安全
Java 机器学习工具箱:Amazon Deep Java Library
近年来,人们对机器学习的兴趣稳步增长。具体来说,现在,企业在各种各样的场景中使用机器学习进行图像识别。它在汽车工业、医疗保健、安全、零售、仓库、农场和农业的自动化产品跟踪、食品识别,甚至通过手机摄像头进行实时翻译等方面都有应用。
|
4天前
|
安全 Java UED
Java中的多线程编程:从基础到实践
本文深入探讨了Java中的多线程编程,包括线程的创建、生命周期管理以及同步机制。通过实例展示了如何使用Thread类和Runnable接口来创建线程,讨论了线程安全问题及解决策略,如使用synchronized关键字和ReentrantLock类。文章还涵盖了线程间通信的方式,包括wait()、notify()和notifyAll()方法,以及如何避免死锁。此外,还介绍了高级并发工具如CountDownLatch和CyclicBarrier的使用方法。通过综合运用这些技术,可以有效提高多线程程序的性能和可靠性。
|
3天前
|
缓存 Java UED
Java中的多线程编程:从基础到实践
【10月更文挑战第13天】 Java作为一门跨平台的编程语言,其强大的多线程能力一直是其核心优势之一。本文将从最基础的概念讲起,逐步深入探讨Java多线程的实现方式及其应用场景,通过实例讲解帮助读者更好地理解和应用这一技术。
19 3
|
8天前
|
Java 调度 UED
深入理解Java中的多线程与并发机制
本文将详细探讨Java中多线程的概念、实现方式及并发机制,包括线程的生命周期、同步与锁机制以及高级并发工具。通过实例代码演示,帮助读者理解如何在Java中有效地处理多线程和并发问题,提高程序的性能和响应能力。