Java基础语法

1.注释

注释不会被执行,是用来给写代码的人看的。

1.1单行注释

单行注释只能注释一行文字

//  注释

1.2多行注释

多行注释可以注释多行文字

/*  注释
注释
注释
*/

1.3文档注释

JavaDoc:文档注释

/**
* @Description HelloWrold
* @Author liyuelian
*/

2.标识符和关键字

Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

2.1关键字

1)48个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while

2)2个保留字(现在没用以后可能用到作为关键字):goto、const

3)3个特殊直接量:true、false、null

2.2标识符注意点

  • 所有的标识符都要以字母(A-Z或者a-z)、美元符($)、或者下划线(_)开始;

  • 首字符之后可以是字母(A-Z或者a-z)、美元符($)、下划线(_)或者数字的四种字符任何组合;

  • 不能使用关键字作为变量名或者方法名;

  • 标识符大小写敏感;

  • 可以使用中文命名,但是不建议使用;

    ![image](https://img2022.cnblogs.com/blog/2192446/202207/2192446-20220723192222792-1231560748.png)

3.数据类型

强类型语言:(C、C++、Java等)

要求变量的使用严格符合规定,所有变量必须先定义之后才能使用。

弱类型语言:(VB、JS等)

可以先使用后定义。

Java的数据类型分为两大类:

  • 1. 基本数据类型

  • 2. 引用数据类型

类、接口、数组....

3.1基本数据类型

基本数据类型(primitive Type)包括四大类八小种

1、整数型

    byte
   short
   int
   long

2、浮点型

    float
   double

3、布尔型

    boolean

4、字符型

    char

字符串String属于引用类,不是关键字

3.2引用数据类型

Reference Type

  1. 接口

  2. 数组

3.3什么是字节?

  • 位(bit):是计算机内部数据存储的最小单位,1bit表示一位,如1011 0010是一个八位二进制数。

  • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。

  • 1B(byte,字节)=8b(bit,位)

  • 字符:是指计算机中使用的字母、数字、字和符号。

4.数据类型拓展以及面试题讲解

4.1整数拓展

进制:二进制(0b)、八进制(0)、十进制、十六进制(0x)

public class Hello {
   public static void main(String[] args) {
       int i=0b10;//二进制0b
       int i1=10;
       int i2=010;//八进制0
       int i3=0x10;//十六进制0x
       System.out.println(i);
       System.out.println(i1);
       System.out.println(i2);
       System.out.println(i3);
  }
}

运行结果:


2
10
8
16
   
Process finished with exit code 0

4.2浮点数拓展

例子1 银行业务怎么表示钱

public class Hello {
   public static void main(String[] args) {
       //浮点数拓展? 银行怎么表示 钱
       //例子1
       float f = 0.1f;//0.1
       double d=1.0/10;//0.1
       System.out.println(f==d);//false

       float d1=292929292828282f;
       float d2=d1+1;
       System.out.println(d1==d2);//true
       
  }
}

运行结果:

false
true

原因:浮点数的位数是有限的,离散的,但是某些运算的结果可能会有无限位小数。浮点数一般会存在舍入误差,接近但不等于实际数值。因此最好完全避免使用浮点数进行比较。

那么银行业务怎么表示钱?

答案是使用数学工具类BigDecimal

4.3字符拓展

public class Hello {
   public static void main(String[] args) {
      char c1='a';
      char c2='中';

       System.out.println(c1);
       System.out.println((int)c1);//强制转换

       System.out.println(c2);
       System.out.println((int)c2);//强制转换
  }
}

运行结果:

a
97

20013

原因:所有的字符本质还是数字--->涉及到编码问题 Unicode

unicode 表:

97 代表 a

65 代表 A

Unicode编码范围从U0000~UFFFF(0~65535)

转义字符

转义字符(Escape character),所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加""来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。简单来说就是在一些字符前加 “\” 使它具有其他意义。

4.4布尔值拓展

public class Hello {
   public static void main(String[] args) {
      boolean flag=true;
      if(flag==true){}
      if(flag){}//与上一行功能一致,默认为true
  }
}

5.类型转换

八种数据类型占用空间大小:

类型描述 基本数据类型 占用空间大小[字节] 取值范围 默认值
字节型 byte 1 -128~127 0
短整型 short 2 -32768~32768 0
整型 int 4 -2^31~2^31-1 0
长整型 long 8 -2^63~2^63-1 0
单精度浮点型 float 4 3.4e-45~1.4e38 0.0f
双精度浮点型 double 8 4.9e-324~1.8e308 0.0d
字符型 char 2 0~65535 '\u0000'
布尔型 boolean 1 true/false false

*关于默认值:成员变量没有手动赋值,系统会默认赋值,局部变量则不会。八种数字类型的默认值是一切向0看齐。

由于Java是强类型语言,所以进行有些运算时需要用到类型转换

低 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > 高

byte < short / char < int < long < float < double

小数优先,因此虽然float的字节数比long小,但long转换成float仍是自动类型转换。

运算中,不同类型的数据先转化为同一类型,然后进行运算。

5.1强制类型转换

大容量转换成小容量,叫做强制类型转换(高—>低)

例子

public class Hello {
   public static void main(String[] args) {
     int i=128;
     byte b=(byte)128;//内存溢出
       //强制转换   (类型)变量名
     
       System.out.println(i);
       System.out.println(b);
  }
}

运行结果:

128
-128

5.2自动类型转换

小容量向大容量转换,称为自动类型转换(低—>高)

例子

public class Hello {
   public static void main(String[] args) {
     int i=128;
     double b=i;

       //强制转换   (类型)变量名
       System.out.println(i);
       System.out.println(b);
  }
}

运行结果:

128
128.0

int转成long类型,由低到高,因此会自动转换。

注意点:

  1. 不能对布尔类型进行转换

  2. 不能把对象类型转换为不相干的类型

  3. 再把高容量转换成低容量时需要强制转换

  4. 转换时可能存在内存溢出或者精度问题

public class Hello {
   public static void main(String[] args) {
       System.out.println((int)23.7);//23,默认向0取整
       System.out.println((int)-45.89f);//-45,默认向0取整
  }
}
public class Hello {
   public static void main(String[] args) {
       char c='a';
       int d=c+1;
       System.out.println(d);//98,自动转换
       System.out.println((char)d);//b,强制转换
  }
}
public class Hello {
   public static void main(String[] args) {
       //操作比较大的数时,注意溢出问题
       //JDK7新特性,数字之间可以用下划线分割
       int money =10_0000_0000;
       System.out.println(money);//输出为1000000000

       int years=20;
       int total=money*years;
       System.out.println(total);//-1474836480,溢出

       long total2=money*years;//-1474836480
       //在赋值给total2之前,由于money和years都是int型,
       // 那么相乘所得的结果也是int类型,已经出现溢出问题,
       // 因此赋值之前的值已经为-1474836480,所以这里的结果也是-1474836480

       long total3=money*(long)years;//先把一个数转换为long
       System.out.println(total3);//结果是 20000000000
  }
}
 

day04-Java基础语法的更多相关文章

  1. Java编程基础阶段笔记 day04 Java基础语法(下)

    day04 Java基础语法 (下) 笔记Notes要点 switch-case语句注意 switch-case题目(switchTest5) 循环执行顺序 if-else 实现3个整数排序 Stri ...

  2. java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...

  3. Java基础语法(下篇)

     Java基础语法(下篇) 内容概要:        (1)函数的定义        (2)函数的特点        (3)函数的应用        (4)函数的重载               ...

  4. Java基础语法(上篇)

                     Java基础语法(上篇) 知识概要: (1)关键字的表示与规范       (2)标示符              (3)注释                (4 ...

  5. java——基础语法

    java基础语法 1.关键字:java赋予特殊含义的单词. 2.标识符:程序中开发人员自定义的名词,例如:类名,函数名,变量名(注意事项:①不能以阿拉伯数字开头②不能采用关键字). 3.常量:固定的数 ...

  6. java基础语法(二)--单列模式

    java基础语法(二)--单列模式 /** * 功能:单列模式 * @author Administrator * */ public class SingletonTest { public sta ...

  7. java基础语法(一)

    java基础语法(一) 1.类是一种抽象的概念,对象是类的一种具体表示形式,是具体的概念.先有类,然后由类来生成 对象(Object).对象又叫做实例(Instance). 2.类由两大部分构成:属性 ...

  8. Java基础语法入门01

    Java基础语法入门01 学习java你要先进行去了解JDK,JRE,JVM JDK Java开发工具包 JRE Java语言开发的运行环境 JVM Java虚拟机,用于Java语言的跨平台所用. 当 ...

  9. Java匹马行天下之JavaSE核心技术——Java基础语法

    Java基础语法 一.   认识Java 1. Java 简介 java 是一种高级的面向对象的程序设计语言,使用Java语言编写的程序时跨平台的.从pc到手机,都有Java开发的程序和游戏,Java ...

  10. JAVA基础语法——标识符、修饰符、关键字(个人整理总结)

    JAVA基础语法——标识符.修饰符.关键字 一 . 标识符 1.1    什么是标识符 就是程序员在定义java程序时,自定义的一些名字,例如helloworld 程序里关键字class 后跟的Dem ...

随机推荐

  1. 官方实锤!AMD真的已经有了大小核:不搞Intel那一套

    Intel 12代酷睿开始引入大小核混合架构,多核跑分提升立竿见影,在游戏.渲染等场景中也有很好的辅助作用,但因为大核心.小核心基于完全不同的架构,需要复杂的系统.软件调度配合,也直接导致失去了AVX ...

  2. YOLO数据集划分(测试集和验证集)

    在目标检测任务中,数据集的划分通常分为训练集和验证集,以便在训练模型时评估模型的性能.这个过程对于有效训练和评估目标检测模型非常重要.下面是划分目标检测数据集的一般步骤:`` 数据集组织: 确保你的数 ...

  3. 零基础入门学习Java之多线程

    多线程 话不多说,看代码 1.什么是多线程 众所周知CPU单线程的东西,也就是说在同一时间内程序只能去做一件事情,但很多时候比如说多人买票.龟兔赛跑.游戏开发等都需要在同一时间内完成多个东西,因此就有 ...

  4. 写好C#代码的技巧

    写好C#代码的技巧 编者导语 本文来自https://www.pluralsight.com,作者Afzaal Ahmad Zeeshan. 原文包含以下三篇文章: <编写更好的C#代码简介&g ...

  5. Power BI 14 DAY

    快消行业销售情况分析 分析目的 帮助经销商优化进.销.存各环节业务流程行为,实现进销存一体化管理,加快资金运转速度,实现销售利润最大化的目的 重要指标 销售类指标 动销次数:在一段期间内产品的销售次数 ...

  6. 从零开始的react入门教程(八),redux起源与基础用法

    壹 ❀ 引 我们在从零开始的react入门教程(七),react中的状态提升,我们为什么需要使用redux一文中介绍了react的状态提升,对于不同组件之间状态需要通信时,将状态提升至两个组件共有的最 ...

  7. FUN GAME 一款普通的C++游戏

    凑合看吧,不是完整版. #include<bits/stdc++.h> #include<windows.h> #include<conio.h> using na ...

  8. 【Unity3D】相机

    1 简介 ​ 相机用于渲染游戏对象,每个场景中可以有多个相机,每个相机独立成像,每个成像都是一个图层,最后渲染的图层在最前面显示. ​ 相机的属性面板如下: Clear Flags:设置清屏颜色,Sk ...

  9. 【OpenGL ES】绘制立方体

    1 前言 ​ 本文主要介绍使用 OpenGL ES 绘制立方体,读者如果对 OpenGL ES 不太熟悉,请回顾以下内容: 绘制三角形 绘制彩色三角形 绘制正方形 绘制圆形 ​ 在绘制立方体的过程中, ...

  10. YOLOV3目标检测模型训练实例

    YOLOV3目标检测 从零开始学习使用keras-yolov3进行图片的目标检测,比较详细地记录了准备以及训练过程,提供一个信号灯的目标检测模型训练实例,并提供相关代码与训练集. DEMO测试 YOL ...