java基础

158 阅读6分钟

基本概念和基本语法***

组成:英语单词、三种括号、双引号、点操作符、分号

过程:符号----标识符----指令语句----程序

标识符和关键字

标识符

标识符:在代码中打上标记帮助识别的函数

  • 标识符分为两大类:

    • 系统预定义标识符(关键字)

    • 用户自定义标识符:

      1. 先人写好,后人用
      1. 本人自定义
  • 自定义标识符命名规则
  • 硬规则 --不遵守就会不能通过:

1.能由数字、字母、$组成

2.数字不能开头,严格区分大小写

3.不能与关键字重复

  • 潜规则--行规 1.见名知意

2.类名 (首字母大写 AaaaBbbbCccc)

变量名(aaaBbbCcc)

常量名(AAA_BBB_CCC)

  • 类的书写

    • Java中所有的代码都要写在类的{}当中
    • 如果这个类的访问修饰符是public的,那么类名必须和java文件名保持一致;
    • 一篇java文件可以书写多个类(通常不这么做),public的只能由一个;
    • 编译后的class文件数量与java文件数量无关,只和java文件中定义的类的数量有关。(一个类一个class文件)
  • main方法

    • main方法又叫主方法定义:main方法书写规定,是整个程序的入口

      1、一个项目里面可以由多个main方法

      2、一个类里面只能有一个main方法

  • 注释

    单行注释 // 快捷键: ctrl+/

    多行注释:/* */ 快捷键: ctrl+shift+/

    文档注释 :/** */

数据类型、变量与常量

计算机存储单位:字节byte 一个字节的范围:0-255

  • 二进制:10进制除以2取余数,余数倒序排放

    • 原码:正数
    • 反码:负数,原码0与1互换
    • 补码:反码加1

结论:小数存放:在计算机中有精度问题

数据类型作用:告知计算机,用什么方式存储数据;告知计算机,划分多大的空间存储数据

基本数据类型

  • 整型:

    • byte:1个字节(-128-127)
    • short:2个字节
    • int :4个字节 ,默认
    • long:8个字节 1L//long
  • 浮点型:

    • float:4个字节

    • double:8个字节,默认

      eg: 3.14F 是float

  • 字符型 :

    • char专用于表示字符,所占空间是2个字符(用单引号引用,里面只能有一个字符eg:'1')

      ASCII码表:A:65 a:97 大小写相差 32 0:48

      eg: 'A'

    • 转义字符例外:’\n‘ 换行 '\r' 回车 '\t' 水平制表符 '' 代表\
    • 布尔型:boolean 空间大小不确定,由根据jvm根据实际情况划分

      两个值:true:真 false:假

  • 引用数据类型:目前只需要:String---字符串型

变量

  • 变量本质

    就是在内存中分配一个空间,然后可以往里面存放数据;且随着程序的运行,该空间的数据值可以变化。 语法:数据类型 变量名=初始值;

    变量声明后需要进行初始化,否则不允许访问和使用它。原因是新声明的变量,里面的数据值不确定且没有意义。

  • 注意:

    • 付给变量的值需要和变量的数据类型匹配;
    • 初始值具体多少依赖于我们程序的需要,不一定是0;

    double t1,t2,t3;//仅对同时声明同一类型的多个变量有效。

  • 变量和赋值数据类型要匹配

    • 数据类型相同

    • 数据类型不同,需要数据类型转换

      • 小值 放入 大变量 -- 自动类型转换

        数据类型大小顺序: byte < short = char < int < long < float < double 布尔类型不参与转换

      • 强制类型转换

        语法: (被转换类型)数据值

        强转后果是精度丢失,注意:不是四舍五入

  • 变量的生命周期:

    • 生------从变量声明语句被执行的时候开始;
    • 死-----该变量声明语句所属{}结束

局部变量类型推断:

jdk10增加局部变量类型推断,允许var关键字代替变量申明中的数据类型,用var申明的变量必须马上附上初始值 int age =10;

常量

常量申明的语法:字面常量、符号常量

符号常量:给字面量起一个名字

** final 数据类型 常量名 = 常量值;**

常量名:AA_BB_CC

  • 为啥要给常量取名字?

    • 把业务含义带入到常量值当中
    • 便于修改

基本的运算符

算数运算符*

最重要的:所有的算术运算符号,如果左右两端的运算数数据类型 一致,那么结果就是该类型的结果。如果不一致,那么结果就是大的那个数据类型的结果

算术运算符: + - * / %

  • 当+号左右两端出现一个字符串的时候,那么它执行的是字符串拼接动作。

  • % : 取模,取余 该符号是对左右两个操作数做除法,只不过最终结果不是商而是余数

  • 特殊:

    • 余数正负号,只跟第一个被除数有关;
    • %符号的运算只在整数运算下才有意义;

比较运算符*

  • 比较运算符: > < >= <= != ==

    比较运算符最终的结果只能是boolean类型true或false

逻辑运算符*

  • 逻辑运算符之"和",又被称之为"与","且"

    • 连接两个boolean表达式,当它们同为true,那么整体返回true;

    • 只要有一个为false,整体返回假;

    • 符号:

      • && - 逻辑与,是专用的逻辑符号
      • & - 位与,本质是位运算符,只是当它左右两端是boolean类型时,表现出和"&&"同样的效果。
    • 区别:
    • 逻辑与&& 又被称之为"短路运算符",当它判断出第一个表达式为false的时候,它不会去执行第2个表达式;
    • 位与 不短路
  • 逻辑运算符之"或"

    • 连接两个boolean表达式,当两个表达式有一个为true的时候,整体就为true;

    • 符号

      • || - 逻辑或,专用的或符号
      • | - 位或,本质也是位运算符,只是当它左右两端是boolean类型时,表现出和"||"同样的效果
    • 区别:
    • 逻辑或 "||" 又被称之为"短路运算符",当它判断出第一个表达式为true的时候,它不会去执行第2个表达式;
    • 位或"|" 不短路
  • 逻辑运算符之"非"

    • 用来对一个boolean表达式的结果取反。如果这个表达式是true,取反后就是false; 反之亦然。
    • 符号 !
  • 异或效果是当两个boolean表达式不同的时候返回true,相同的时候返回false;

    • 符号: ^

赋值运算符*

  • 把赋值运算符右边的表达式,赋给左边的变量

    • 左边只有一个变量
    • 要注意左右两边的数据类型:自动类型转换和强制类型转换
  • 变形的赋值运算符(一):+= -= *= /= %=

    语法:变量=变量+值; 变量+=值;

  • 变形的赋值运算符(二):++ - - 又被称为“自增长”,“自减小”

    • a++;a--;a++ 后加 a--后减
    • ++a前加 --a前减

三目运算符

  • 三目运算符格式: 表达式1 ? 表达式2 : 表达式3

    • 表达式1必须是一个布尔表达式;
    • 当表达式1为true的时候,用表达式2的结果作为整个三目运算符的结果;
    • 当表达式1为false的时候,用表达式3的结果作为整个三目运算符的结果

位运算符

输入和输出

通过使用先人提供的Scanner的类,完成控制台输入;

  • Scanner的使用步骤:

    • 产生一个Scanner对象;
    • 调用该对象的方法完成输入;
    • 关闭Scanner对象