【Java】掌握Java:基础概念与核心技能

文章目录

  • 前言:
  • 1. 注释
  • 2. 字面量
  • 3. 变量详解
    • 3.1 变量的定义
    • 3.2 变量里的数据存储原理
    • 3.3 数据类型
    • 3.4 关键字、标识符
  • 4. 方法
    • 4.1 方法是啥?
    • 4.2 方法的完整定义格式
    • 4.3 方法如何使用:
    • 4.4 方法的其他形式
    • 4.5 方法的其他注意事项
      • 4.5.1 方法是可以重载的
      • 4.5.2 无返回值的方法中可以直接通过单独的 `return`; 立即结束当前的方法执行。
  • 5. 类型转换
    • 5.1 自动类型转换
    • 5.2 强制类型转换
  • 6. 表达式的自动类型提升
  • 7. 输入输出
  • 总结:

前言:

在计算机编程的众多语言中,Java以其独特的优势和广泛的应用领域,成为了学习和使用的首选。对于初学者而言,理解Java的基础概念和语法是至关重要的。本文旨在为读者提供一个系统的Java基础知识概览,包括注释的使用、字面量的理解、变量的定义与数据类型、方法的运用、类型转换的规则以及表达式的自动类型提升等。通过这些基础知识的学习,读者将能够构建起对Java编程语言的基本认识,为进一步的学习和实践打下坚实的基础。

1. 注释

  • 单行注释://
  • 多行注释:/* */
  • 文档注释:/** */

2. 字面量

字面量:就是程序中能直接书写的数据,学这个知识的重点是:搞清楚Java程序中数据的书写格式
在这里插入图片描述

public static void printLiteral() {// 输出几个常见的字面量// 1.整型字面量System.out.println(1);// 2.浮点型字面量System.out.println(1.0);// 3.布尔型字面量System.out.println(true);// 4.字符型字面量System.out.println('A');// 5.字符型字面量,需要使用转义字符System.out.println("\"");System.out.println("hallo\n world");System.out.println("hello\tworld");
}

3. 变量详解

3.1 变量的定义

// 定义一个方法,来学习变量的定义
public static void printVariable() {// 定义一个变量,保存一个整数值int num = 10;// 定义一个变量,保存一个浮点值double score = 98.5;// 定义一个变量,保存一个字符值char gender = '男';// 定义一个变量,保存一个布尔值boolean flag = true;// 定义一个变量,保存一个字符串值String name = "张三";// 打印变量的值System.out.println(num);System.out.println(score);System.out.println(gender);System.out.println(flag);System.out.println(name);System.out.println("--------------------------------");
}

3.2 变量里的数据存储原理

char ch = 'A'; // 存的是65的二进制
System.out.println(ch + 1); // 输出:66
char ch2 = 'a'; // 存的是97的二进制
System.out.println(ch2 + 1); // 输出:98
// 程序中可以直接写进制数据
// 二进制
int i1 = 0b101; // 5
System.out.println(i1);
// 八进制
int i2 = 010; // 8
System.out.println(i2);// 十六进制
int i3 = 0xA; // 10
System.out.println(i3);

3.3 数据类型

  1. 基本数据类型
    在这里插入图片描述
// 设计一个方法,打印出8种数据类型定义的变量public static void printVariable() {// 1. 整型byte b = 10;short s = 20;int i = 30;// 注意:Java中long型数据需要加L,否则默认为int型long l1 = 5346234632L;long l = 40;// 2. 浮点型// 注意:Java中float型数据需要加f,否则默认为double型float f = 50.5f;double d = 60.6;// 3. 字符型char c = 'a';// 4. 布尔型boolean bool = true;System.out.println(b);System.out.println(s);System.out.println(i);System.out.println(l1);System.out.println(l);System.out.println(f);System.out.println(d);System.out.println(c);System.out.println(bool);}
  1. 引用数据类型

3.4 关键字、标识符

  1. 关键字
    Java 的关键字是语言中已经预定义的词,它们具有特殊的语法意义。关键字不能用作标识符(例如变量名、方法名或类名)。以下是一些常见的 Java 关键字的例子:

public:用来声明公共访问权限。
class:用于定义一个类。
interface:用于定义一个接口。
void:表示一个方法不返回任何值。
intfloatdoublecharboolean:基本数据类型的声明。
ifelseswitch:控制流语句。
forwhile:循环语句。
new:用于创建新的对象实例。
return:从方法返回值或结束方法执行。

  1. 标识符
    标识符是在 Java 程序中由程序员定义的名称,用于给变量、类、方法、包等命名。标识符遵循一定的规则:
  • 可以包含字母、数字、下划线 _ 和美元符号 $。
  • 必须以字母、下划线或美元符号开头,不能以数字开头。
  • 区分大小写,例如 MyVariable 和 myvariable 是两个不同的标识符。
  • 不能使用 Java 的关键字作为标识符。
  • 虽然不是强制要求,但建议标识符应尽量有意义,并且遵循 Java 的命名约定,例如变量名通常使用小驼峰式命名法(camelCase),即第一个单词首字母小写,后续每个单词首字母大写。

4. 方法

4.1 方法是啥?

方法是一种用于执行特定任务或操作得代码块,代表一个功能,它可以接收数据进行处理,并返回一个处理后得结果。

4.2 方法的完整定义格式

在这里插入图片描述

4.3 方法如何使用:

方法必须调用才能执行,调用格式:方法名称(数据)

public static void main(String[] args) {// 目标:掌握方法的定义和调用int sum = add(10, 20);System.out.println(sum);System.out.println("--------------------------");
}// 定义一个方法,求任意两个整数的和并返回
public static int add(int a, int b) {return a + b;
}

4.4 方法的其他形式

// 需求:打印3行"Hello World",不需要返回值,不需要参数
// 注意:如果方法没有返回值,那么调用的时候,可以省略括号中的参数
// 无参数,无返回值
public static void printHelloWorld() {System.out.println("Hello World");System.out.println("Hello World");System.out.println("Hello World");
}// 需求3:获取一个指定位数的验证码返回
// 掌握方法的定义格式
// 需要接收数据吗? 需要,需要接收位数。 int len
// 需要返回数据吗? 需要,返回一个验证码。 String
// 有参数有返回值的方法
public static String getVerifyCode(int len) {String code = "";for (int i = 0; i < len; i++) {int num = (int) (Math.random() * 10);code += num;}return code;
}

4.5 方法的其他注意事项

4.5.1 方法是可以重载的

一个类中,出现多个方法的名称相同,但是它们的形参列表是不同的,那么这些方法就称为方法重载了

// 定义一个方法,打印一个整数
public static void print(String str) {System.out.println(str);
}// 定义一个重载方法
public static void print(int a) {System.out.println(a);
}// 定义一个重载方法
public static void print(double b) {System.out.println(b);
}
// 注意:方法重载只关心方法名称相同,形参列表不同(类型不同,个数不同,顺序不同),其他都无所谓// 需求:发射导弹
public static void fire(int x, int y) {System.out.println("发射导弹:" + x + "," + y);
}// 定义一个重载方法
public static void fire(int x, int y, int z) {System.out.println("发射导弹:" + x + "," + y + "," + z);
}

4.5.2 无返回值的方法中可以直接通过单独的 return; 立即结束当前的方法执行。

// 设计一个除法功能
public static void div(int a, int b) {if (b == 0) {System.out.println("除数不能为0");return; // 提前结束方法, 卫语言风格}System.out.println(a / b);
}

5. 类型转换

5.1 自动类型转换

什么是自动类型转换,为什么要自动类型转换?

  • 类型范围小的变量,可以直接赋值类型范围大的变量。
    在这里插入图片描述
    自动类型转换在计算机中的执行原理:
    在这里插入图片描述

5.2 强制类型转换

什么是强制类型转换,为什么要进行强制类型转换?

  • 类型范围大的变量,不可以直接赋值类型范围小的变量,会报错,需要强制类型转换过去
int i = 20;
// print3(i); // 类型范围大的变量不能直接赋值给类型范围小的变量,会报错!// 强制类型转换,类型 变量2 = (类型)变量1
print3((byte) i); // public static void print3(byte a)// 强转可能导致数据溢出
print3((byte) 129); // 打印-12

在这里插入图片描述
注意事项:

  • 强制类型转换可能造成数据(丢失)溢出;浮点强转成整数,直接丢掉小数部分,保留整数部分返回
double k = 3.14;
int l = (int) k; // 浮点数转整型,小数部分会被截掉
System.out.println(l); // 3

6. 表达式的自动类型提升

在这里插入图片描述

// 需求:接收各种类型的数据运算
public static double calc(int a, int b, double c, char r) {// 表达式的最终结果类型式由最高类型决定的return a + b +c + r;
}public static int calc2(byte a, byte b) {// byte short char 运算时会直接提升成 int 运算return a + b;
}public static byte calc3(byte a, byte b) {byte c = (byte)( a + b); // 不建议这样写return c;
}

7. 输入输出

  • 输出:把程序中的数据展示出来。
System.out.println("Hello World!");
  • 输入:程序读取用户键盘输入的数据。

通过 java 提供的 Scanner 程序来实现

// 需求:写一个方法,可以让用户键盘输入用户名和年龄,然后打印出来。
public static void printUserInfo() {// 2. 创建对象(抄写这一行代码,得到一个Scanner扫描对象)Scanner sc = new Scanner(System.in);// 3.获取用户输入System.out.println("请输入用户名:");// 让程序暂停,等待用户输入一个字符串,只到输入回车键,把名字交给变量name记住再继续执行。String name = sc.next();System.out.println("请输入年龄:");// 让程序暂停,等待用户输入一个整数,只到输入回车键,把年龄交给变量age记住再继续执行。int age = sc.nextInt();// 4. 打印System.out.println("用户名:" + name + ",年龄:" + age);
}

在这里插入图片描述

总结:

本文详细介绍了Java编程的基础知识,从基础的注释和字面量开始,逐步深入到变量的定义、数据存储原理、数据类型、关键字与标识符的规则。在方法部分,我们探讨了方法的定义、调用、重载以及如何通过参数和返回值实现功能的封装。类型转换章节则解释了自动类型转换和强制类型转换的原理及其应用,同时指出了在类型转换过程中可能遇到的数据溢出问题。表达式的自动类型提升让我们理解了在不同数据类型参与运算时Java如何处理类型提升。最后,输入输出部分展示了如何通过Scanner类实现用户与程序的交互。

通过本文的学习,读者应该能够掌握Java编程的基础技能,并能够将这些知识应用到实际的编程实践中。Java编程是一个不断学习和探索的过程,希望本文能够作为读者学习Java的起点,激励读者不断深入探索Java的更多高级特性和应用。随着实践的积累,读者将能够更加熟练地运用Java解决实际问题,开发出高效、可靠的软件应用。

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

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

相关文章

如何充分使用芝士AI呢?一文讲清楚助力论文完成无忧

为了解决各位学弟学妹们的论文烦恼&#xff0c;助力大家毕业无忧&#xff0c;芝士AI由985硕博团队的学长学姐们潜心研发出来的一款集齐论文选题、开题报告、论文初稿、论文查重、论文降重、论文降AIGC率、论文答辩稿、论文答辩PPT&#xff0c;一站式解决困扰大家已久的论文问题…

如何创建标准操作规程(SOP)[+模板]

创建、分发和管理流程文档和逐步说明的能力是确定企业成功的关键因素。许多组织依赖标准操作规程&#xff08;SOP&#xff09;作为基本形式的文档&#xff0c;指导他们的工作流程操作。 然而&#xff0c;SOP不仅仅是操作路线图&#xff1b;它们就像高性能车辆中的先进GPS系统一…

机器视觉-7 检测原理之预处理(图像增强)

在图像处理领域&#xff0c;图像增强是一个非常重要的技术&#xff0c;目的是通过调整图像的某些特征来改善图像的视觉效果&#xff0c;或为后续的图像分析和处理做准备。在 OpenCV 中&#xff0c;C 提供了多种图像增强方法&#xff0c;包括直方图均衡化、对比度拉伸、锐化、边…

双向链表-

链表特性&#xff1a;带头/不带头 循环/非循环 --->排列组合后&#xff0c;共有8种链表结构 一.双向链表的定义 前一个节点存了后一个节点的地址&#xff0c;后一个节点也存了前一个节点的地址&#xff0c;即循环链表 二.代码解析 //双向链表 //与非循环链表区别&#…

面试官:Spring是如何解决循依赖问题?

Spring 的循环依赖一直都是 Spring 中一个很重要的话题&#xff0c;一方面是 Spring 为了解决循环依赖做了很多工作&#xff0c;另一个方面是因为它是面试 Spring 的常客&#xff0c;因为他要求你看过 Spring 的源码&#xff0c;如果没有看过 Spring 源码你基本上是回答不了这个…

【Java】线程暂停比拼:wait() 和 sleep()的较量

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持&#xff01; 在Java多线程编程中&#xff0c;合理地控制线程的执行是至关重要的。wait()和sleep()是两个常用的方法&#xff0c;它们都可以用来暂停线程的执行&#xff0c;但它们之间存在着显著的差异。本文将详…

移动技术开发:RecyclerView瀑布流水果列表

1 实验名称 RecyclerView瀑布流水果列表 2 实验目的 掌握RecyclerView控件的实现方法和基本应用 3 实验源代码 布局文件代码&#xff1a; activity_main&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android&q…

Mac系统Docker中SQLserver数据库文件恢复记录

Mac系统Docker中SQLserver数据库文件恢复记录 Mac想要安装SQLsever&#xff0c;通过docker去拉去镜像是最简单方法。 一、下载Docker Docker 下载安装&#xff1a; 需要‘科学上网’ 才能访问到docker官网。&#xff08; https://docs.docker.com/desktop/install/mac-ins…

18.2K Star,AI 高效视频监控摄像头

Hi&#xff0c;骚年&#xff0c;我是大 G&#xff0c;公众号「GitHub 指北」会推荐 GitHub 上有趣有用的项目&#xff0c;一分钟 get 一个优秀的开源项目&#xff0c;挖掘开源的价值&#xff0c;欢迎关注。 导语 在家庭和企业安防领域&#xff0c;实时视频监控是保障安全的核…

2024 SNERT 预备队招新 CTF 体验赛-Web

目录 1、robots 2、NOF12 3、get_post 4、好事慢磨 5、uploads 6、rce 7、ezsql 8、RCE 1、robots robots 协议又叫爬虫协议&#xff0c;访问 robots.txt 继续访问 /JAY.php 拿到 flag&#xff1a;flag{hello_Do_YOU_KONw_JAY!} 2、NOF12 F12 和右键都被禁用 方法&#…

22、Raven2

难度 中 目标 root权限 4个flag 使用Virtualbox启动 kali 192.168.86.105 靶机 192.168.86.106 信息收集 看到111端口有一个rpc相关的东西&#xff0c;去网上查看了一下是什么服务 通过在网上搜索发现这是一个信息泄露的漏洞&#xff0c;上面的这个端口其实就是泄露的端口和…

【Spring 底层原理】手搓一个Spring框架

文章目录 准备工作Spring 框架到底在干啥&#xff1f;几个概念辨析注解的定义自定义核心注解配置类启动类辅助类 Spring 容器XxxAware 回调机制初始化机制前置、后置处理器完整的容器代码源码下载 最近工作接触到的知识比较底层&#xff0c;因此为了突破瓶颈&#xff0c;彻底搞…

ubuntu+MobaXterm+ssh+运行Qt(成功版)

点击上方"蓝字"关注我们 01、ubuntu连接SSH >>> 通过串口工具连接ubuntu 登录 解决连接不上的问题 检查 SSH 服务:确保目标机器上 SSH 服务已启动。你可以在目标机器上运行以下命令: sudo systemctl status ssh 如果没有运行,可以使用以下命令启动 SSH …

英特尔AI加速器Gaudi 3下周发布,挑战NVIDIA统治地位!

英特尔正稳步推进其2024年计划&#xff0c;备受瞩目的AI加速器Gaudi3预计将于下周震撼登场。这款被誉为英特尔AI英雄的产品&#xff0c;专注于处理大规模训练和推理任务&#xff0c;拥有无与伦比的扩展能力。面对市场对高效能半导体的旺盛需求&#xff0c;英特尔首席执行官帕特…

FX5 CPU模块和以太网模块的以太网通信功能

FX5 CPU模块和以太网模块的以太网通信功能的概要如下所示。 CPU模块的内置以太网端口的通信规格如下所示。 1、与MELSOFT的直接连接 不使用集线器&#xff0c;用1根以太网电缆直接连接以太网搭载模块与工程工具(GX Torks3)。无需设定IP地址&#xff0c;仅连接目标指定即可进行…

无服务器计算构建人工智能管理区块链系统

图片发自简书App 图片发自简书App 本发明属于网络版权管理技术领域&#xff0c;特别涉及一种以交易信息作 为唯一标准发行虚拟币的区块链系统。 背景技术 数字代币如比特币、以太坊等是区块链技术的实现方式之一&#xff0c;目 标是取代法定货币流通&#xff0c;通过“挖矿”的…

前端-js例子:收钱转账

支付宝转账 在这里用到周期定时器setInterval(function,time)&#xff0c;设置达到目标钱数时停止定时器。 点击转账按钮时&#xff0c;开始函数显示。 同时要确定输入框里输入的是数字。&#xff08;有一定容错&#xff09; window.onloadfunction(){var btn document.que…

什么是慢充优惠话费充值api?如何选择平台

一、话费充值api的定义 话费充值api是一种能够让开发者将话费充值功能集成到自己的平台的接口。通过接入话费充值api接口&#xff0c;就能够实现话费充值平台的搭建&#xff0c;从而为用户提供话费充值服务&#xff0c;这一接口主要适用于对话费充值有长期稳定需求的企业或者商…

K8s容器运行时,移除Dockershim后存在哪些疑惑?

K8s容器运行时&#xff0c;移除Dockershim后存在哪些疑惑&#xff1f; 大家好&#xff0c;我是秋意零。 K8s版本截止目前&#xff08;24/09&#xff09;已经发布到了1.31.x版本。早在K8s版本从1.24.x起&#xff08;22/05&#xff09;&#xff0c;默认的容器运行时就不再是Doc…

排序-----归并排序(递归版)

核心思想&#xff1a;假设数组前后两部分各自有序&#xff0c;然后各定义两个指针&#xff0c;谁小谁放到新开辟的数组里面&#xff0c;最后把新开辟的数组赋值给原数组就完成了。要使前后两部分有序就采用递归的方式&#xff0c;不断往下划分块&#xff0c;最后一层划分为两个…