【探索Java编程:从入门到入狱】Day2

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

目录

0x1 前言

0x2 JDK 安装

1、Windows 上安装 Java

1.1、配置环境变量

1.2、检测 Jdk 是否安装成功

2、Linux 上安装 Java

2.1、源码包解压

2.2、配置环境变量

2.3、检测是否安装成功

0x3 开发工具

1、IDEA安装

2、第一个Hello World

0x4 题目-2854 · 自定义注解

描述

代码解释:

解答:


0x1 前言

练习Java代码平台这里还是给师傅们推荐炼码https://www.lintcode.com/这个平台不错,有知识点学习以及代码学习。题目位置如下:https://www.lintcode.com/problem/2854

0x2 JDK 安装

1、Windows 上安装 Java

1.1、配置环境变量

点击 计算机——系统属性——高级系统设置——高级——环境变量

在环境对话框内有两个变量:上面的是用户变量(用于配置当前的用户);下面的是系统变量(配置所有的用户)。

TIPS:如果选择在用户变量中新建 JAVA_HOME,可能后面会出现 javac 不是内部或外部命令,也不是可运行的程序。
  1. 设置 JAVA_HOME:所以我们选择在系统变量新建。
JAVA_HOME
D:\java\jdk   (这是JDK的路径)

2. 设置 Path:在系统变量中编辑 Path(多个变量之间要用分号隔开)。

Path
%JAVA_HOME%\bin (JDK中的bin文件路径)

3. 设置 CLASSPATH:防止出现找不到或无法加载主类问题。

TIPS:变量值可以只填一个点,后面的变量写不写都是可以的,如果不放心的话可以加上。
CLASSPATH
.;D:\java\jdk\lib;D:\java\jdk\lib\dt.jar;D:\java\jdk\lib\tools.jar

1.2、检测 Jdk 是否安装成功

在命令窗口中输入 javac ,看看有没有出现下载类似的信息,代表安装成功。

2、Linux 上安装 Java

2.1、源码包解压

上传至 Linux 系统上,使用 xftp 将 JDK 源码包,上传到 /usr/local (软件一般安装到这个目录)。

使用解压命令解压。

[root@localhost local]# tar -zxvf jdk-8u181-linux-x64.tar.gz

2.2、配置环境变量

/etc/profile 文件的改变会涉及到系统的环境,也就是有关 Linux 环境变量的东西。所以需要将 JDK 配置到 /etc/profile,才可以在任何一个目录访问 JDK。

[root@localhost local]# vim /etc/profile

i 进入编辑,在 profile 文件尾部添加如下内容。

export JAVA_HOME=/usr/local/jdk1.8.0_181  #jdk安装目录export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATHexport JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/binexport PATH=$PATH:${JAVA_PATH}

使用 Esc --> :wq 保存并退出编辑,通过命令 source /etc/profileprofile 文件立即生效。

[root@localhost local]# source /etc/profile

2.3、检测是否安装成功

显示版本号就是安装成功了。

[root@localhost local]# java -version

0x3 开发工具

正所谓工欲善其事必先利其器,我们在开发 Java 语言过程中同样需要一款不错的开发工具,目前市场上的 IDE 很多,本文为大家推荐以下下几款 Java 开发工具:

  • Eclipse:另一个免费开源的 Java IDE,下载地址:Eclipse Packages | The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 350 open source projects...
  • Netbeans:开源免费的 Java IDE,下载地址:Welcome to Apache NetBeans
  • JetBrains(推荐) 的 IDEA,现在很多人开始使用了,功能很强大,下载地址:Download IntelliJ IDEA – The Leading Java and Kotlin IDE

1、IDEA安装

  1. 进入 IDEA 官方下载页面,点击 Download 下载。

 2. IntelliJ IDEA 是一款跨平台的开发工具,支持 Windows、Mac、Linux 等操作系统,选择我们需要的版本进行下载(以 Windows 为例)。

 3. 点击下载后可能需要注册,一般情况下,不用理会,浏览器会自动进行下载,等待下载完成即可。

 4.下载完成后,我们会得到一个 IntelliJ IDEA 安装包,双击打开下载的安装包,选择 Next,正式开始安装。

 5.设置 IDEA 的安装目录,建议不要安装在系统盘(通常 C 盘是系统盘),这里选择安装到 D 盘。

 6 .自行选择需要的功能,若无特殊需求,按图中勾选即可。

TIPS:Create Desktop Shortcut:创建桌面快捷方式图标,建议勾选 64-bit launcher;
Update context menu:是否将从文件夹打开项目添加至鼠标右键,根据需要勾选;
Create Associations:关联文件格式,可以不推荐勾选,使用如 Sublime Text、EditPlus 等轻量级文本编辑器打开;
Download and install 32-bit JetBrains Runtime:下载并安装 JetBrains 的 JRE。如果已经安装了JRE,则无需勾选此项;
Update PATH variable (restart needed):是否将 IDEA 启动目录添加到环境变量中,即可以从命令行中启动 IDEA,根据需要勾选。

 7.选择开始菜单文件夹后,点击 Install 等待安装。

 8.等待安装进度条达到 100% 后,点击 Finish,IntelliJ IDEA 就安装完成了。可以勾选 Run IntelliJ IDEA 选项,表示关闭此窗口后运行 IDEA。

2、第一个Hello World

IDEA 安装成功后,我们就可以开始编写第一个 Java 程序了。

0x4 题目-2854 · 自定义注解

描述

在日常的工作开发中,我们经常需要给一个对象中的属性赋值,现在需要您创建一个自定义注解,来帮助我们完成属性赋值。请您将 MyAnnotation 类修改成一个自定义注解,并添加属性 name(String)age(int) 。您可以查看 Main 类中的执行流程,来观察程序的运行机制。

import java.lang.annotation.*;public class MyAnnotation {}

代码解释:
  1. @Documented:表示该注解会被 javadoc 工具识别,并加入到生成的文档中。
  2. @Retention(RetentionPolicy.RUNTIME):指定了注解的保留策略为 RUNTIME,表示这个注解会在运行时可通过反射获取,可以在运行时处理。
  3. @Target({ElementType.FIELD}):指定了注解的作用目标为字段(Field),表示这个注解只能用在类的字段上。
  4. 注解声明中包含两个属性:name() age(),分别用来存储注解的名称和年龄。

解答:
import java.lang.annotation.*;//注释加入到文档
@Documented
//注解保留到什么阶段
@Retention(RetentionPolicy.RUNTIME)
//指定注解用在哪些目标上
@Target({ ElementType.FIELD})
public @interface MyAnnotation {int age() ;String name();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/4096.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js[黑马笔记]

js基础 基础语法 输入输出 变量 数组 常量 数据类型 类型转换 运算符 语句 数组 函数 调用方式 函数名() 匿名函数 使用: 1.函数表达式 2.立即执行函数 对象 内置对象 web API DOM document object Model元素操作 获取元素 设置元素 定时器 DOM事件基础 事件监听 事件类…

流量网关与服务网关的区别:(面试题,掌握)

流量网关:(如Nignx,OpenResty,Kong)是指提供全局性的、与后端业务应用无关的策略,例如 HTTPS证书认证、Web防火墙、全局流量监控,黑白名单等。 服务网关:(如Spring Clou…

含匹配扰动的多智能体领航跟随一致性Matlab仿真

文章目录 [TOC](文章目录) 前言一、问题描述二、基于LQR的观测器和控制器设计1.观测器设计2.控制器设计 三、数值仿真四、参考文献总结 前言 ​本文探讨了带有匹配扰动的多智能体领航跟随一致性控制方法,并提供了相应的Matlab仿真代码。 具体的设计步骤如下&#…

大数据—数据采集DataX

一、DataX介绍 官网: DataX/introduction.md at master alibaba/DataX GitHub DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。 DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、…

【算法刷题 | 贪心算法02】4.24(摆动序列)

文章目录 3.摆动序列3.1题目3.2解法:贪心3.2.1贪心思路3.2.2代码实现 3.摆动序列 3.1题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。 第一个差(如果存在的话)可能是正数或负数。仅有一个元素…

WPF 资源基础

动态资源/静态资源 UI代码 <Window x:Class"WpfApp1.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/ex…

太速科技-基于6 U VPX M.2 高带宽加固存储板

基于6 U VPX M.2 高带宽加固存储板 一、板卡概述 基于6 U VPX M.2 高带宽加固存储板&#xff0c;可以实现VPX接口的数据读写到PCI-E总线的NVME存储媒介上。采用PLX8732&#xff0c;上行链路提供带宽x16的PCI-E数据到VPX接口上&#xff1b;下行链路提供3路带宽x4的PCI-E接口…

Unity打包PC端exe,压缩打包为一个exe文件

目录 一.打包成功 1.打包输出文件 二.压缩输出目录为exe单个文件 1.添加到压缩文件 2.其他设置 1.点击“高级→自压缩选项” 2.修改解压后运行程序 3.设置模式 4.更新 三、生成.exe 一.打包成功 1.打包输出文件 1、一个后缀为 BurstDebugInformation_DoNotShip的文…

Android 12 Starting window的添加与移除

添加&#xff1a; 04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.StartingSurfaceController.createSplashScreenStartingSurface(StartingSurfaceController.java:87) 04-13 16:29:55.931 2944 7259 D jinyanmeistart: at com.android.server.wm.…

ios不兼容Svg Wave的动画的解决方法

近日也是用上了SvgWave&#xff0c;十分的好看 Svg Wave - A free & beautiful gradient SVG wave Generator. 大家感兴趣的也可以了解一下 【场景】 使用SvgWave的Animate&#xff0c;并生成svg代码使用&#xff0c;windows web端、朋友的安卓移动端都能够正常执行动画…

前端CSS基础10(浮动)

前端CSS基础10&#xff08;浮动&#xff09; 浮动元素浮动后的特点浮动后的特点浮动后的影响及解决 浮动布局小练习 浮动 CSS中的浮动是一种布局技术&#xff0c;常用于实现元素的排列和定位。通过使用float属性&#xff0c;可以让元素在页面中左浮动或右浮动&#xff0c;使得…

在PostgreSQL中如何有效地批量导入大量数据,并确保数据加载过程中的性能和稳定性?

文章目录 解决方案1. 使用COPY命令2. 调整配置参数3. 禁用索引和约束4. 使用事务5. 并发导入 总结 在PostgreSQL中&#xff0c;批量导入大量数据是一个常见的需求&#xff0c;特别是在数据迁移、数据仓库填充或大数据分析等场景中。为了确保数据加载过程中的性能和稳定性&#…

Compose和Android View相互使用

文章目录 Compose和Android View相互使用在Compose中使用View概述简单控件复杂控件嵌入XML布局 在View中使用Compose概述在Activity中使用Compose在Fragment中使用Compose布局使用多个ComposeView 在布局中使用Compose 组合使用 Compose和Android View相互使用 在Compose中使用…

AIGC - SD(中英文本生成图片) + PaddleHub/HuggingFace + stable-diffusion-webui

功能 stable-diffusion(文本生成图片)webui-win搭建&#xff08;开启api界面汉化&#xff09;PaddleHubHuggingFace: SD2&#xff0c;中文-alibaba/EasyNLP stable-diffusion-webui 下载与安装 环境相关下载 python&#xff08;文档推荐&#xff1a;Install Python 3.10.6 …

linux开发板开机启动向日葵

硬件&#xff1a;orangepi 5 pro 操作系统&#xff1a;ubuntu 20.4 lts 安装向日葵 根据我的实测&#xff0c;arm架构的ubuntu系统只能安装向日葵提供的麒麟系统的那个版本&#xff0c;具体安装方式官网下载页面有 允许任意用户连接到 X11 使用root用户登录后打开终端输入一下…

react函数组件传值(父子/子父/兄弟)

父子组件传值 子父组件传值 兄弟组件传值 注&#xff1a;本人前端小白 &#xff0c;如有不对的地方还请多多指教

knife4j swagger 使用笔记

1.接口访问的端口跟后台设置的不一致&#xff0c;接口请求无反应 处理办法 2.响应参数不显示问题 &#xff08;1&#xff09;返回的参数里面一定要有响应的参数对象&#xff0c;如下&#xff1a; &#xff08;2&#xff09;TableDataInfo 定义成泛型类 TableDataInfo package…

ros2 node 之间的通信方式之 —— Topic通信案例

文章目录 ros2 node 之间的通信方式之 Topic通信Topic 通信案例1、创建工作空间2、创建功能包3、编写发布者和订阅者代码3.1 topic_helloworld_pub.cpp3.2 topic_helloworld_sub.cpp 4、编写CMakeLists.txt5、编译工作空间下的功能包6、运行结果 ros2 node 之间的通信方式之 To…

AutoGPT-Forge使用教程,自行构建agent智能体

本博客给出AutoGPT-forge四个教程的翻译与理解&#xff0c;使用GPT4翻译&#xff0c; 参考官方教程https://aiedge.medium.com/autogpt-forge-a-comprehensive-guide-to-your-first-steps-a1dfdf46e3b4 使用AutoGPT Github代码日期2024/4/22&#xff1b; 博客开始编辑日期20…

C语言项目实战——扫雷

目录 1.前言 2.完整流程 2.1规划书 2.2代码部分 2.2.1文件的结构设计 2.2.2变量的创建 2.2.3菜单的基本实现 2.2.4初始化期棋盘 2.2.5输出完整棋盘 2.2.6埋雷的实现 2.2.7查询周围雷的数量 2.2.8扫雷的实现 2.2.9完整代码 3.总结 1.前言 哈喽大家好吖&#xff0c;今…