java 语法第一章

helloworld 编写

class helloworld
public 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自动升级为int char 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);

赋值运算符

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

关系运算符

逻辑运算符

位运算符

运算符优先级

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

    优先级 运算符说明 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类型数据、

流程控制语句分类

  • 顺序结构

    • 顺序结构概述

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

      总的来说:写在前面的先执行,写在后面的后执行

  • 选择结构

    • 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(初始化语句③; 循环条件语句④; 迭代语句⑥) {
        循环体语句⑤;
        }
        } //执行过程:① - ② - ③ - ④ - ⑤ - ⑥ - ④ - ⑤ - ⑥ - ... - ④ - ⑦ - ② - ③ - ④ - ⑤ - ⑥ - ④..

java学习第一章的更多相关文章

  1. {java学习}[第一章]软件开发概述(2017.1.11).

  2. “全栈2019”Java多线程第一章:认识多线程

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  3. “全栈2019”Java异常第一章:什么是异常?

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...

  4. 201671010140. 2016-2017-2 《Java程序设计》java学习第一周

       java学习第一周        本周是新学期的开端,也是新的学习进程的开端,第一次接触java这门课程,首先书本的厚度就给我一种无形的压力,这注定了,这门课程不会是轻松的,同时一种全新的学习方 ...

  5. Java学习第一天

    Java学习第一天 对于网络管理员或者黑客必须知道的八个cmd命令 详情请参考:http://www.2cto.com/os/201608/533964.html          nbtstat  ...

  6. web学习第一章

    web学习第一章   我是大概9月10日开始走上IT之路的,一开始学习了小段时间的自动化办公软件, 昨天我开始学习客户端网页编程,我了解什么是WEB,一些比较老古董的计算模式和发展历史,印象最让我深刻 ...

  7. Java 学习第一步-JDK安装和Java环境变量配置

    Java学习第一步——JDK安装及Java环境变量配置 [原文]  2014-05-30 9:09  Java SE  阿超  9046 views Java作为当下很主流的编程语言,学习Java的朋 ...

  8. 从.Net到Java学习第一篇——开篇

    以前我常说,公司用什么技术我就学什么.可是对于java,我曾经一度以为“学java是不可能的,这辈子不可能学java的.”结果,一遇到公司转java,我就不得不跑路了,于是乎,回头一看N家公司交过社保 ...

  9. oracle学习 第一章 简单的查询语句 ——03

    1.1最简单的查询语句 例 1-1 SQL> select * from emp; 例 1-1 结果 这里的 * 号表示全部的列.它与在select 之后列出全部的列名是一样的.查询语句以分号( ...

  10. Java基础知识二次学习-- 第一章 java基础

    基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一 ...

随机推荐

  1. 简单但实用,RTC时钟使用指南

    合宙Air201快速入门-RTC实时时钟使用示例- 本教程教你通过使用脚本代码,实现Air201内置RTC实时时钟同步时间.获取时间.设置时间等功能,可根据实际需求灵活应用. 我们先了解一些相关基础知 ...

  2. 不容忽视的PCB测试点,关键时刻可以避免批量事故哦!

    ​  PCB测试点是啥子?请看下图: ​ 如果你曾经用过NOKIA手机,每次你打开后盖换电池的时候,每次看到的那两排圆形的点--就是PCB测试点,or you can call it Test Poi ...

  3. VL4AD:让语义分割认识未知类别,无需额外数据和训练的OOD语义分割 | ECCV'24

    来源:晓飞的算法工程笔记 公众号,转载请注明出处 论文: VL4AD: Vision-Language Models Improve Pixel-wise Anomaly Detection 论文地址 ...

  4. ubuntu安装fish

    换新电脑后需要安装fish命令行工具,发现总是apt install不成功,后来挂了代理才成功. 然后我想让这个fish的命令能自动导入我以前写的alias命令(点击这里),可是发现网上人家都说fis ...

  5. 玩转AI工作流:一步步搭建灵活的自动化流程

    我们之前搭建了许多不同类型的智能体,其中最受欢迎的就是在智能体中搭建各种工作流--这也是我最喜欢探索和玩的领域.那么,究竟什么是工作流?如何在后端实现一个工作流呢?今天我们就先简单了解下. 什么是工作 ...

  6. 在运行期通过反射了解JVM内部机制

    本文由 ImportNew - 黄飞飞 翻译自 takipioncode.欢迎加入Java小组.转载请参见文章末尾的要求. 在日常工作中,我们都习惯直接使用或者通过框架使用反射.在没有反射相关硬编码知 ...

  7. httpclient 连接池测试

    为什么需要使用http连接池 1.降低延迟:如果不采用连接池,每次连接发起Http请求的时候都会重新建立TCP连接(经历3次握手),用完就会关闭连接(4次挥手),如果采用连接池则减少了这部分时间损耗, ...

  8. vue ssr error: TypeError: Cannot read property 'replace' of undefined

    在开发vue ssr应用时, yarn build  yarn start 之后启动正常: info Server running at: http://0.0.0.0:6606 在访问页面时,发现页 ...

  9. 源启容器平台KubeGien 打造云原生转型的破浪之舰

    ​ 云原生是应用上云的标准路径,也是未来发展大的趋势.如何将业务平滑过渡到云上?怎样应对上云期间的各项挑战呢?中电金信基于金融级数字底座"源启"打造了一款非常稳定可靠.多云异构.安 ...

  10. 【MyBatis】学习笔记11:解决字段名和属性的映射关系

    [Mybatis]学习笔记01:连接数据库,实现增删改 [Mybatis]学习笔记02:实现简单的查 [MyBatis]学习笔记03:配置文件进一步解读(非常重要) [MyBatis]学习笔记04:配 ...