草庐IT

Java学习(1)

llwq 2023-10-23 原文

一、Java的基础语法

1.变量和数据类型

  在Java中,变量是用来存储数据的容器,可以存储各种类型的数据。Java中的变量分为两类:基本数据类型变量和引用数据类型变量。

(1)基本数据类型(Primitive Data Types)

  • 整数类型:byte、short、int、long
  • 浮点类型:float、double
  • 字符类型:char
  • 布尔类型:boolean

  基本数据类型变量存储的是数据本身,而引用数据类型变量存储的是对象的引用或地址。在Java中,变量的声明方式是先声明变量类型,然后是变量名,最后是可选的初始化表达式,如下所示:

  <数据类型> <变量名> [= 变量初始化表达式];

  例如,声明一个整型变量并初始化为10:

  float num = 2.0;

(2)引用数据类型(Reference Data Types)

  • 类(Class):用于创建对象
  • 接口(Interface):用于定义方法
  • 数组(Array):用于存储同一种数据类型的多个元素
  • 枚举(Enum):用于定义枚举类型
  • 注解(Annotation):用于注释代码

  在Java中,基本数据类型是通过值来传递的,而引用数据类型是通过引用(内存地址)来传递的;变量还可以被修饰为final、static、volatile和transient等类型,这些修饰符可以改变变量的特性和用途。

2.运算符

  Java中的运算符包括以下类型:

(1)算术运算符:+ - * / %

(2)关系运算符:== != > < >= <=

(3)逻辑运算符:&& || !

(4)位运算符:& | ^ ~ << >> >>>

(5)赋值运算符:= += -= *= /= %= &= |= ^= <<= >>= >>>=

(6)条件运算符(三目运算符):? :

(7)instanceof运算符:用于判断对象是否是某个类的实例,格式如下:

<对象> instanceof<类>

  除此之外,Java还有一些特殊的运算符,如:

(1)++、--自增自减运算符

(2).成员访问运算符

(3)[]数组访问运算符

(4)()方法调用运算符

  运算符的优先级和结合性在Java中也很重要,决定了表达式的求值顺序。可以使用小括号来改变运算符的优先级和结合性。

 3.流程控制语句
  Java中的流程控制语句用于控制程序的执行流程,包括以下几种类型:

(1)条件语句(if语句):

  用于判断某个条件是否成立,如果条件成立,则执行一段代码块。格式如下:

if (condition) {
    // code block
}

  也可以使用if-else语句,在条件成立和不成立时分别执行不同的代码块:

if (condition) {
    // code block 1
} else {
    // code block 2
}

还可以使用多重if-else语句或嵌套if语句,实现更加复杂的条件判断。

(2)循环语句(while循环、for循环、do-while循环):

  用于重复执行一段代码块,直到某个条件不再成立。格式如下:

while (condition) {
    // code block
}
for (initialization; condition; update) {
    // code block
}
do {
    // code block
} while (condition);

  其中,while循环在每次执行前判断条件是否成立,for循环在执行前先初始化,然后在每次执行前和执行后更新循环变量的值,do-while循环先执行一次,然后在每次执行前判断条件是否成立。

(3)跳转语句(break语句、continue语句、return语句):

  用于改变程序执行的流程,跳过一些代码或者提前退出一个方法。格式如下:

break;
continue;
return [value];

  其中,break语句用于跳出循环,continue语句用于跳过本次循环,return语句用于提前返回方法的执行结果。

(4)switch语句:

  用于根据某个变量的值,执行不同的代码块。格式如下:

switch (variable) {
    case value1:
        // code block 1
        break;
    case value2:
        // code block 2
        break;
    ...
    default:
        // code block n
        break;
}

  其中,variable是需要判断的变量,case后面是变量可能的取值,default是变量值都不匹配时执行的代码块。

 4.小任务
(1)输出helloworld

  可以使用Java的标准输出语句System.out.println()来输出helloworld。示例如下:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("hello, world");
    }
}

  在这个示例中,我们定义了一个公共类HelloWorld,包含了一个静态方法main。在main方法中,使用System.out.println()输出了字符串"hello, world"。执行程序后,会在控制台输出"helloworld"。

 (2)编写一个简单的控制台应用程序,让用户输入两个数,然后输出它们的和、差、积和商

  可以使用Java的控制台输入语句Scanner来读取用户输入的数值,然后使用算术运算符计算它们的和、差、积和商,最后使用System.out.println()输出计算结果。示例如下:

import java.util.Scanner;
public class Calculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入第一个数:");
        double num1 = scanner.nextDouble();
        System.out.print("请输入第二个数:");
        double num2 = scanner.nextDouble();
        double sum = num1 + num2;
        double diff = num1 - num2;
        double product = num1 * num2;
        double quotient = num1 / num2;
        System.out.println("和:" + sum);
        System.out.println("差:" + diff);
        System.out.println("积:" + product);
        System.out.println("商:" + quotient);
    }
}

  在这个示例中,我们定义了一个公共类Calculator,包含了一个静态方法main。在main方法中,首先创建了一个Scanner对象,用于读取用户的输入。然后依次提示用户输入两个数,并使用scanner.nextDouble()读取用户输入的数值,分别存储在num1和num2变量中。接下来,使用算术运算符计算它们的和、差、积和商,分别存储在sum、diff、product和quotient变量中。最后,使用System.out.println()输出计算结果。

有关Java学习(1)的更多相关文章

  1. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  2. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  3. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  4. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  5. Observability:从零开始创建 Java 微服务并监控它 (二) - 2

    这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/

  6. 【Java 面试合集】HashMap中为什么引入红黑树,而不是AVL树呢 - 2

    HashMap中为什么引入红黑树,而不是AVL树呢1.概述开始学习这个知识点之前我们需要知道,在JDK1.8以及之前,针对HashMap有什么不同。JDK1.7的时候,HashMap的底层实现是数组+链表JDK1.8的时候,HashMap的底层实现是数组+链表+红黑树我们要思考一个问题,为什么要从链表转为红黑树呢。首先先让我们了解下链表有什么不好???2.链表上述的截图其实就是链表的结构,我们来看下链表的增删改查的时间复杂度增:因为链表不是线性结构,所以每次添加的时候,只需要移动一个节点,所以可以理解为复杂度是N(1)删:算法时间复杂度跟增保持一致查:既然是非线性结构,所以查询某一个节点的时候

  7. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  8. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  9. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  10. 【Java入门】使用Java实现文件夹的遍历 - 2

    遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些!一、使用递归遍历文件夹整体思路1、使用File封装初始目录,2、打印这个目录3、获取这个目录下所有的子文件和子目录的数组。4、遍历这个数组,取出每个File对象4-1、如果File是否是一个文件,打印4-2、否则就是一个目录,递归调用代码实现publicclassSearchFile{publicstaticvoidmain(String[]args){//初始目录Filedir=newFile("d:/Dev");Datebeg

随机推荐