Java学习之路 —— Day1(环境配置、变量)

news2024/10/7 9:18:26

文章目录

  • 前言
  • 1. 搭建Java开发环境
    • 1.1 下载java
    • 1.2 JDK组成
    • 1.3 使用idea开发
  • 2. java基本语法
    • 2.1 变量类型
    • 2.2 Scanner输入
    • 2.3 随机数
    • 2.4 数组

前言

已经好久没有写博客了,打开这个网站有一种熟悉又陌生的感觉。

前段时间一直在准备秋招,现在也告一段落了,也马上到下一个阶段了,所以才又一次打开了这个网站。

我也不知道我还能坚持输出多少博客,或许后面工作了也就写一篇少一篇了吧。

后续可能会因为工作业务需求的原因,和我未来长期的一个职业规划发展来看,我可能会转java了,这或许也就意味着我要和用了3年的C++告别了。在没心没肺玩了快一周后,我打算慢慢开始学着java。

1. 搭建Java开发环境

1.1 下载java

java的产品叫做JDK,必须安装JDK才能使用java。

下载的地址是Oracle官网:JDK

安装好后,bin、目录下包含了2个文件,其中javac.exe是编译工具,此时,我们的源代码文件会从hello.java变为hello.class;然后java.exe是执行工具。

来一个最简单的hello world。注意,文件名称必须与代码的类名称一致,而且main函数必须也要有参数,这一点和C++不一样!

public class helloWord {
	public static void main(String[] args) {
		System.out.println("Hello, World");
	}
}

在这里插入图片描述
在JDK11后,可以直接java helloWorld.java,这就不会创建中间文件了。

1.2 JDK组成

  • JVM:java虚拟机,真正运行java程序的地方
  • 核心类库:java自己写好的程序,给程序员自己的程序调用的
  • JRE:java的运行环境
  • JDK:java开发包

其中,JVM和核心类库组成了JRE,而JRE和各种开发工具(java、javac)共同组成了JDK。

java一个最好的优点就是跨平台了,因为有JVM的存在,公司为不同的平台提供了对应的JVM。

1.3 使用idea开发

使用idea开发第一个java程序的步骤:

  1. 创建工程new project
  2. 创建模块new Module
  3. 创建包new Package
  4. 创建类

project->module->package->class
层层文件夹,套娃呢感觉。

几个常用的IDEA快捷键

  • main/psvm、sout:快速键入相关代码
  • ctrl + D:复制当前行数据到下一行
  • ctrl + Y:删除所在行,建议用ctrl + X
  • ctrl + alt + L:格式化代码
  • alt + shift + ↑/↓:上下移动当前代码

2. java基本语法

这里呢主要是把一些和C++不同的罗列出来,其实大部分的语法和用法和C++都是相同的。

2.1 变量类型

基本类型和C++基本一致,比如int、浮点数、字符char用' ',字符串String用" "。唯一的区别就是char占用的是2个字节,long占用的是8个字节。并且布尔类型在java中叫做boolean,这个名称和C++不同。

还有个变量类型是byte占1个字节,byte在计算时会默认转换成int进行计算。
在这里插入图片描述

2.2 Scanner输入

使用scanner接受用户键盘输入有3个步骤:

  1. 导包:告诉程序去JDK哪个包中招扫描器技术
  2. 得到键盘扫描器对象
  3. 等待接收用户输入数据
public class sanner {
    public static void main(String[] args) {
        // 得到一个键盘扫描器对象
        Scanner sc = new Scanner(System.in);
        // 调用cs的功能,来接收用户键盘输入的数据
        System.out.println("请输入年龄:");
        int age = sc.nextInt();   // 执行到这,会等待用户输入一个整数

        System.out.println("请输入姓名:");
        String name = sc.next();    // 输入的是string

        System.out.println("请输入性别:");
        String sex = sc.next();    // 输入的是string
        System.out.println(age + " " + name + " " + sex);
    }
}

2.3 随机数

  1. 导包:在java.util.Random
  2. 获取随机数对象
  3. 调用随机数的功能获取0~9的随机数
package basic;
import java.util.Random;
public class random {
    public static void main(String[] args) {
        Random r = new Random();
        int number = r.nextInt(10);
        System.out.println(number);
    }
}

2.4 数组

Java使用new操作符来创建数组

  • dataType[] arrayRefVar = new dataType[arraySize]; // 动态初始化
  • dataType[] arrayRefVar = new dataType[] {value0, value1, ..., valuek}; // 静态初始化
  • dataType[] arrayRefVar = {value0, value1, ..., valuek}; // 简化写法

和C++不同的是,java中[]建议是放在类型名的后面,而不是在变量后面。

如果想要获取数组的长度,使用的是nums.length,而不是size。


在Java中,多个变量指向同一个数组,相当于C++中的引用,指向的是同一块地址。

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

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

相关文章

MySQL集群高可用架构之MHA

目录 一、概念: 1、MHA的工作流程: 2、MHA工作原理: 二、MHA实验: 一、概念: MHA:masterhight availabulity:基于主库的高可用环境下,实现主从复制以及故障切换 主从的架构&…

Swift 警惕“隐式异步(implicitly asynchronous)”方法的执行陷阱

概览 actor 是 Swift 5.5 中一个“不可思议”的新类型,可以把它看做成一个数据同步器。actor 中所有属性和方法都会被自动“串行”(serializes)访问和执行,从而有效避免了数据竞争的发生。 不过,在一些微妙的情境下使…

Axure原型设计工具怎么样?有替代软件吗?

Axurerp是一种快速原型设计工具,可以制作高度互动的HTML原型。设计师不仅可以使用Axure绘制线框图和原型,还可以在Axurerp中完成一系列用户体验设计。在本文中,我们将根据用户体验设计师的真实经验,触发用户体验设计师的实际工作&…

绕过PPL机制窃取凭证

Mimikatz窃取凭证攻击 正常权限cmd情况下mimikatz是无法直接提权的,所以窃取密码更是不行的。 但管理员权限下的mimikatz是可以获取到主机登陆密码的。 PPL安全机制 在此之前,用户只需要使用SeDebugPrivilege令牌权限即可获取任意进程的所有访问权限;随后Windows8.1 在此…

阿里云 OSS使用介绍

1、什么是阿里云 OSS? OSS 为 Object Storage Service,即对象存储服务。是阿里云提供的海量、安全、低成本、高可靠的云存储服务。 OSS 具有与平台无关的 RESTful API 接口,可以在任意应用、任意时间、任意地点 存储与访问 任何类型的数据。…

算法的时间复杂度!!!很懵逼吧~

度量一个程序的执行时间通常有两种方法:事后统计的方法、事前估算法 1.事后统计的方法 这种方法可行,但是有两个问题: 一是要想对设计的算法的运行性能进行评测,需要实际运行该程序;二是所得时间的统计量依赖于计算机的硬件、软件等环境因素,这种方式,…

PostGIS学习教程五:数据

教程的数据是有关纽约市的四个shapefile文件和一个包含社会人口经济数据的数据表。在前面一节我们已经将shapefile加载为PostGIS表,在后面我们将添加社会人口经济数据。 下面描述了每个数据集的记录数量和表属性。这些属性值和关系是我们以后分析的基础。 要在pgAdm…

2021年09月 Scratch(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

一、单选题(共25题,每题2分,共50分) 第1题 如下图所示,小明想要做一个文字逐字出现的动画效果,他画出了程序的流程图,以下哪个程序可以实现? A: B: C: D: 答案&#

PP-YOLO: An Effective and Efficient Implementation of Object Detector(2020.8)

文章目录 Abstract1. Introduction先介绍了一堆前人的work自己的workexpect 2. Related Work先介绍别人的work与我们的区别 3.Method3.1. ArchitectureBackboneDetection NeckDetection Head 3.2. Selection of TricksLarger Batch SizeEMADropBlockIoULossIoU AwareGrid Sensi…

Elasticsearch:ES|QL 快速入门

警告:此功能处于技术预览阶段,可能会在未来版本中更改或删除。 Elastic 将努力解决任何问题,但技术预览版中的功能不受官方 GA 功能的支持 SLA 的约束。目前的最新发行版为 Elastic Stack 8.11。 Elasticsearch 查询语言 (ES|QL) 提供了一种强…

MySQL8.0学习笔记

1. CMD命令 1.1 数据库启动与停止 (1) 启动数据库:net start mysql80 (2) 停止数据库:net stop mysql80 1.2 数据库连接与退出 (1) 连接数据库:mysql [-hlocalhost -P3306] -uroot -p[123456] // 本地数据库可省略-h -P (2) 退出数据库…

Opencv!!在树莓派上安装Opencv!

一、更新树莓派系统 sudo apt-get update sudo apt-get upgrade二、安装python-opencv sudo apt-get install libopencv-dev sudo apt-get install python3-opencv三、查看是否安装成功 按以下命令顺序执行: python import cv2 cv2.__version__如果出现版本号&a…

【luckfox】2、添加lcd spi屏st7735和gc9306

前言 本章使用fbtft添加spi lcd st7735/gc9306。 fbtft生成fb0设备,后续通过lvgl可以实现自定义界面绘制。 代码参考 https://gitee.com/openLuat/LuatOS/blob/master/components/lcd/luat_lcd_gc9306x.c 硬件是合宙的,合宙esp32有支持,仿…

Linux内存问题排查

目录 概念工具 概念 工具 vmstat:查看内存变化情况 通过vmstat,可以看到空闲列是否一直是减少的趋势,而缓冲和缓存一直不变,说明存在内存泄漏 top/htop ps pmap:查看进程的内存分布 bcc工具: memlea…

实战Leetcode(五)

Practice makes perfect! 实战一: 思路:我们要用复制的节点来组成一个新的链表,而原链表的节点随机指向其中一个节点,我们首先给每一个节点都复制并且插入到原来节点的后面,然后用复制的节点指向我们原来节…

http接口测试—自动化测试框架设计

一、测试需求描述 对服务后台一系列的http接口功能测试。 输入:根据接口描述构造不同的参数输入值(Json格式) 输出:字符串(传入的方式传入的字符串) http://localhost:8090/lctest/TestServer 二、程序设计…

manim更新

manim升级18.0 # 1 更新pip,推荐轮子下载 python -m pip install --upgrade pip 推荐方式下载轮子安装 首先尝试在中断更新pip,通过命令python -m pip install --upgrade pip 可能遇到以下情况 记录最新的pip轮子名 记录下上面pip的名称,去…

【开源】基于Vue和SpringBoot的校园失物招领管理系统

项目编号: S 006 ,文末获取源码。 \color{red}{项目编号:S006,文末获取源码。} 项目编号:S006,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 招领管理模块2.2 寻物管理模块2.3 系…

nacos集群配置(超完整)

win配置与linux一样,换端口或者换ip,文章采用的 linux不同IP,同一端口 节点ipportnacos1192.168.253.168848nacos2192.168.253.178848nacos3192.168.253.188848 单IP多个端口 1.复制两个,重命名 2.修改 conf目录下的 application…

教务必备:php+Mysql多条件都输对版万用查分系统

查分吧PHP多条件都输对版已有表万用查询系统 V1.8 极简单文件实现一至多条件都输对成绩录取分班等通用查询。 支持隐藏指定列、支持网址列显示为图片或链接、支持验证码开关。 适合学校或教育机构信息中心技术员使用,快速部署并用于已有数据表查询。 无后台管理…