java学习第一章

news/2025/1/12 19:59:13/文章来源:https://www.cnblogs.com/lanzhi666/p/18667209

java 语法第一章

helloworld 编写

class helloworldpublic static void main(String[] args){System.out.printline("helloworld")}
  • 小结
    • java语言严格区分大小写
    • System.out.println("输出信息"); 在控制台输出信息之后会换行。
      System.out.print("输出信息"); 在控制台输出信息之后不会换行。
      System.out.println()在控制台没有输入任何信息,直接进行换行操作
    • java程序中中的执行语句 需要以;结尾
    • main方法为程序入口,固定写法
    • 一个java文件里可以有很多个class类,但是只能有一个可以声明为public,而且要求声明public的类的类名必须与java源文件名相同。

注释

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

关键字

  • java 中有特殊含义的字
  • 标识符:凡是可以自己命名的地方,都是标识符。比如:类名,变量名,方法名,包名,等。
    • 规则:见名知意

变量

  • 数据类型、变量名、变量值
  • 格式:数据类型 变量名 = 变量值

八种基本数据类型

byte short int long char float double boolean
整数类型:byte  short int long 
java程序变量声明通常为int ,定义long类型的变量,赋值时需要以l或者L作为后缀浮点类型:float double 
float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求double:双精度,精度是float的两倍。通常采用此类型。定义float类型的变量,赋值时需要以"f"或"F"作为后缀。
Java 的浮点型常量默认为double型。char 型数据用来表示通常意义上“字符”(占2字节)
Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语的一个字符。
boolean 类型用来判断逻辑条件,一般用于程序流程控制语句中
boolean 类型数据只有两个值:false 和true

计算机存储单位

  • 字节(Byte):是计算机用于计量存储容量的基本单位,一个字节等于8bit

  • 位(bit):是数据存储的最小单位。二进制数系统中,每个0或者1就是一个位,叫做bit (比特),其中8bit就称为一个字节(Byte)

  • 转换关系:

  • 8 bit = 1 Byte

  • 1024 Byte = 1 KB

  • 1024 KB = 1 MB

  • 1024 MB = 1 GB

  • 1024 GB = 1 TB

引用数据类型

String array 类 接口等

自动类型提升

  • 规则:将取值范围小(或容量小)的类型自动提升为取值范围大(或容量大)的类型

    (1)当把存储范围小的值(常量值、变量的值、表达式计算的结果值)赋值给了存储范围大的变量时

    int i = 'A';//char自动升级为int,其实就是把字符的编码值赋值给i变量了
    double d = 10;//int自动升级为double
    long num = 1234567; //右边的整数常量值如果在int范围呢,编译和运行都可以通过,这里涉及到数据类型转换//byte bigB = 130;//错误,右边的整数常量值超过byte范围
    long bigNum = 12345678912L;//右边的整数常量值如果超过int范围,必须加L,显式表示long类型。否则编译不通过
    

    (2)当存储范围小的数据类型与存储范围大的数据类型变量一起混合运算时,会按照其中最大的类型运算。

    int i = 1;
    byte b = 1;
    double d = 1.0;double sum = i + b + d;//混合运算,升级为double
    

    (3)当byte,short,char数据类型的变量进行算术运算时,按照int类型处理。

    byte b1 = 1;
    byte b2 = 2;
    byte b3 = b1 + b2;//编译报错,b1 + b2自动升级为intchar c1 = '0';
    char c2 = 'A';
    int i = c1 + c2;//至少需要使用int类型来接收
    System.out.println(c1 + c2);//113 
    

强制类型转换

  • 规则:将取值范围大(或容量大)的类型强制转换成取值范围小(或容量小)的类型。
  • 格式:数据类型1 变量名=(类型数据1) 被强制转换

(1)当把存储范围大的值(常量值、变量的值、表达式计算的结果值)强制转换为存储范围小的变量时,可能会损失精度或溢出

int i = (int)3.14;//损失精度double d = 1.2;
int num = (int)d;//损失精度int i = 200;
byte b = (byte)i;//溢出

2)当某个值想要提升数据类型时,也可以使用强制类型转换。这种情况的强制类型转换是没有风险的,通常省略。

int i = 1;
int j = 2;
double bigger = (double)(i/j);

赋值运算符

image-20250110211116567

赋值运算符 符号解释
+= 将符号左边的值右边的值进行相加操作,最后将结果赋值给左边的变量
-= 将符号左边的值右边的值进行相减操作,最后将结果赋值给左边的变量
*= 将符号左边的值右边的值进行相乘操作,最后将结果赋值给左边的变量
/= 将符号左边的值右边的值进行相除操作,最后将结果赋值给左边的变量
%= 将符号左边的值右边的值进行取余操作,最后将结果赋值给左边的变量

关系运算符

image-20250110211220408

逻辑运算符

image-20250110211311137

位运算符

image-20250110211406574

运算符优先级

  • 运算符有不同的优先级,所谓优先级就是在表达式运算中的运算符顺序。

    优先级 运算符说明 Java运算符
    1 括号 ()[]{}
    2 正负号 +-
    3 单元运算符 ++--~
    4 乘法、除法、求余 */%
    5 加法、减法 +-
    6 移位运算符 <<>>>>>
    7 关系运算符 <<=>=>instanceof
    8 等价运算符 ==!=
    9 按位与 &
    10 按位异或 ^
    11 按位或 `
    12 条件与 &&
    13 条件或 `
    14 三元运算符 ? :
    15 赋值运算符 =+=-=*=/=%=
    16 位赋值运算符 &=、`

键盘录入

  • 如何实现键盘录入数据呢?(目前先记住使用)

    • 导包(位置放到class定义的上面)
      import java.util.Scanner;
      Scanner sc = new Scanner(System.in);
      接收数据
      int x = sc.nextInt();//接受int类型数据

      String x=sc.next()//接收String类型数据、

流程控制语句分类

  • 顺序结构

    • 顺序结构概述
      是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,自上而下,依次执行,程序中大多数的代码都是这样执行的。
      总的来说:写在前面的先执行,写在后面的后执行

      image-20250110212634156

  • 选择结构

    • break和continue的说明

      			适用范围			在循环结构中使用的作用						相同点break		switch-case循环结构			一旦执行,就结束(或跳出)当前循环结构		    此关键字的后面,不能声明语句continue	循环结构			一旦执行,就结束(或跳出)当次循环结构		    此关键字的后面,不能声明语句
      
    • 选择结构 也被称为分支结构。
      选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
      Java语言提供了两种选择结构语句

      • if语句

        if语句有三种格式
        if语句第一种格式:
        if(关系表达式) {语句体
        }if语句第二种格式:
        if(关系表达式) {语句体1;}else {语句体2;}f语句第三种格式:
        if(关系表达式1) {语句体1;}else  if (关系表达式2) {语句体2;}…else {语句体n+1;}
      • switch语句

        switch语句格式:
        switch(表达式) {case 值1:语句体1;break;case 值2:语句体2;break;…default:	语句体n+1;break;}
        格式解释
        switch表示这是switch语句
        表达式的取值:byte,short,int,char
        JDK5以后可以是枚举
        JDK7以后可以是String
        case后面跟的是要和表达式进行比较的值
        语句体部分可以是一条或多条语句
        break表示中断,结束的意思,可以结束switch语句
        default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。执行流程
        首先计算出表达式的值
        其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
        最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。注意事项
        case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
        default可以省略吗?
        可以省略。一般不建议。除非判断的值是固定的。(单选题)
        break可以省略吗?
        可以省略,一般不建议。否则结果可能不是你想要的
        default的位置一定要在最后吗?
        可以出现在switch语句任意位置。
        switch语句的结束条件
        遇到break
        执行到程序的末尾
  • 循环结构

    • 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

      • for循环

      • for循环语句格式:
        for(初始化语句;判断条件语句;控制条件语句) {循环体语句;}
        1,初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔
      • while循环

        ①初始化部分
        while(②循环条件部分){③循环体部分;④迭代部分;
        }
        while(循环条件)中循环条件必须是boolean类型。
        注意不要忘记声明④迭代部分。否则,循环将不能结束,变成死循环。
        for循环和while循环可以相互转换。二者没有性能上的差别。实际开发中,根据具体结构的情况,选择哪个格式更合适、美观。
        for循环与while循环的区别:初始化条件部分的作用域不同。
        
      • do while循环

        ①初始化部分;
        do{③循环体部分④迭代部分
        }while(②循环条件部分);do-while结构的循环体语句是至少会执行一次,这个和for和while是不一样的
      • 无限循环

        最简单"无限"循环格式
        while(true)
        for(;;)
        
      • 嵌套循环

        所谓嵌套循环
        是指一个循环A的循环体是另一个循环B。比如,for循环里面还有一个for循环,就是嵌套循环。其中,for ,while ,do…while均可以作为外层循环或内层循环。外层循环:循环A内层循环:循环B实质上,嵌套循环就是把内层循环当成外层循环的循环体。只有当内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的外层循环。
        设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次。
        技巧:从二维图形的角度看,外层循环控制行数,内层循环控制列数。for(初始化语句①; 循环条件语句②; 迭代语句⑦) {for(初始化语句③; 循环条件语句④; 迭代语句⑥) {循环体语句⑤;}
        }//执行过程:① - ② - ③ - ④ - ⑤ - ⑥ - ④ - ⑤ - ⑥ - ... - ④ - ⑦ - ② - ③ - ④ - ⑤ - ⑥ - ④..
        

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

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

相关文章

【Azure App Service】对App Service中CPU指标数据中系统占用部分(System CPU)的解释

问题描述 在使用Azure App Service服务时,对于它的CPU占比,从App Service Plan级别可以查看整个实例(vm)资源的CPU占比,而如果在具体的一个App Service服务中,则只能查看到当前应用所消耗的CPU时间,如果需要计算它的占比:需要使用公式【 CPU Time / (CPU核数 * 60 )】估算…

2024秋季学期 光学期末复习笔记

累了,懒得写文案了参考资料 [1] 赵凯华, 钟锡华. 光学(重排本)[M]. 北京大学出版社, 2017.10. [2] 崔宏滨, 李永平, 康学亮. 光学(第二版)[M]. 科学出版社, 2015.7. [3] 王安廷. 光学课程PPT[Z]. 中国科学技术大学, 2024. 干涉衍射偏振

Python 基础知识 之 选择(分支)结构 + 模式匹配结构(match)

选择结构按照条件选择执行不同的代码段1. 单分支结构if语法结构执行流程:如果表达式的值为True,就执行语句块,如果表达式的值为False,就跳过语句块,继续执行下面的语句 ⭐注意: ⭐⭐⭐表达式后面的冒号; 缩进,python中通过缩进来控制程序逻辑示例;# 1. 判断是否中奖 n…

中考英语优秀范文-热点话题-传统文化-003 Chinese Tea 中国茶

1 写作要求 第三次法国国际友好交流学校线上论坛拟于下周五举行。本期论坛的主题为“茶文化”,作为论坛特邀嘉宾,请你写一篇文章,向国际友好交流学校介绍中国的特色茶饮和中国茶文化。 内容包括: 1 茶的历史(中国人种茶、饮茶已有4000多年的历史)和种类(绿茶、红茶、乌龙…

Hetao P3804 Cut 题解 [ 蓝 ] [ AC 自动机 ] [ 差分 ]

AC 自动机简单题。Cut:AC 自动机简单题。思路 看见多个模式串以及求前缀,很显然能想到构建一个 AC 自动机。 那么在用 \(T\) 查询时,当前指针的深度就是该位置的最长前缀匹配长度。这个在字典树 insert 的时候就能求出来。 求出每一位的最长前缀后,因为这些部分都不能作为分…

Lec 14 文件系统与设备

Lec 14 文件系统与设备License 本内容版权归上海交通大学并行与分布式系统研究所所有 使用者可以将全部或部分本内容免费用于非商业用途 使用者在使用全部或部分本内容时请注明来源 资料来自上海交通大学并行与分布式系统研究所+材料名字 对于不遵守此声明或者其他违法使用本内…

Java基础学习(七)

Java基础学习(七):异常机制 目录Java基础学习(七):异常机制概念简单分类异常体系结构异常处理机制自定义异常 本文为个人学习记录,内容学习自 狂神说Java概念异常指程序运行中出现的不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等 异常发生在程序运行期…

24. 基于项的控件

一、基于项的控件PySide6 有专门的显示数据的控件和存储数据的模型,可以显示和存储不同形式的数据。显示数据的控件分为两类,一类是基于 项(item)的控件,另一类是基于 模型(model)的控件,基于项的控件是基于模型的控件的简便类。基于项的控件把读取到的数据存储到项中,…

杂题选记

杂题选记在网上天天划水刷面经,见到 teaser 就记下来。我的想法是,把 8L 倒入 3L,把 3L 倒入 5L,把 8L 倒入 3L,把 3L 倒入 5L,这时候三个瓶子分别有 1L(8L) 2L(3L) 5L(5L) 括号里面表示瓶子最开始的容量。这时候把 1L 水倒掉,把容积为 8L 的瓶子里面的 2L 水倒到 容积为…

pytorch算子调用过程:以rand算子为例

通过pytorch的torch.profiler带调用栈采集运行过程可以看到如下信息,通过chrome://tracing查看,图上每个小条条表示一个traceEvent, json中的信息如下图所示,其中cat表示traceEvent的类型,有cpu_op,python_function等,前者表示torch的cpp代码中定义的操作,后者表示pytorc…

Wordpress更换域名后,网站显示框架和加载问题解决

最近建立了一个站点,由于先使用ip进行网站搭建,经过一段时间备案完成后,需要转成域名。直接在Wordpress后台操作后,直接导致网页框架显示异常,排版错乱,大概就是主题的框架无法加载导致的。 搞了很久,包括恢复数据库和重新建站都是这样,最终发现是伪静态的问题。 我是使…

【Weblogic T3协议】反序列化漏洞分析(上)

免责声明 此文章中所涉及的技术、思路和工具仅供网络安全学习为目的,不得以盈利为目的或非法利用,否则后果自行承担!一、前言 在初入安全的时候,就听说过weblogic的大名,当然听说的并不是weblogic如何如何好用,而是因为其漏洞出现频率实在是有点高...于是乎,便抱着学习的…