java学习记录4 Java基础知识点

java学习记录4 Java基础知识点

1. 注释

单行注释

  1. 使用“//”开头,后面是注释的内容

  2. 一般在要注释的语句的上面加注释

多行注释

  1. 以“/*”开头,以“*/”结尾

  2. 可以做行内注释

  3. 不可嵌套使用

文档注释

  1. 以“/**”开头,以“*/”结尾

  2. 用来给类和方法做注释,用以说明类的功能和作者等信息

  3. 包含一些说明行文字及一些JavaDoc标签,可以在写项目是生成项目的API

注意

  1. 注释不会出现在字节码文件中,即Java编译器编译时会跳过注释语句

2. 标识符规则-驼峰规则

定义

是用来给变量、类、方法以及包进行命名的

规则

  1. 必须以字母、下划线_、美元符$开头

  2. 其它部分可以是字母、下划线,美元符和数字的任意组合

  3. 大小敏感,长度无限制

  4. 不可以是Java的关键字

规范

  1. 给类起名,首字母要大写,如Man,GoodMan.

  2. 给方法和变量起名,第一个单词小写,从第二个单词开始首字母大写,遵从“驼峰原则”,如:eat(),eatFood().

  3. Java采用Unicode标准国际字符集,因此变量名可以是英文的,也可以是中文的,但尽量不要用中文。

3. 变量

本质

  1. 本质上是一个“可操作的存储空间”,空间的位置是确定的,但是里面放置什么值是不确定的。我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。

  2. Java是强类型语言,每个变量都必须声明其数据类型。

  3. 是最基本的存储单元,其要素包括变量名、变量类型和作用域。变量在使用前必须对其声明,只有变量声明以后,才能为其分配相应长度的存储空间。

  4. 包括基本类型和引用类型两种类型的变量。

  5. 不提倡“一行声明多个变量”

  6. 局部变量必须声明并且初始化之后才能使用

分类

局部变量(local variable)

  1. 含义:方法或语句块内部定义的变量。

  2. 周期:从声明的位置开始到方法和语句块执行完毕为止。

  3. 局部变量使用之前必须初始化

成员变量(member variable)

  1. 也叫实例变量。

  2. 定义在方法的外部、类的内部的变量,没有被static修饰。

  3. 从属于对象。

  4. 生命周期伴随对象始终。

  5. 会自行初始化成该类型的默认出始值。

  6. 出始值:int - 0,double - 0.0,char - '\u0000',boolean - false

静态变量(static variable)

  1. 定义在类内部,使用static定义。

  2. 从属于类。

  3. 生命周期伴随类始终,从类加载到类卸载。生命周期最长。

4. 常量(Constant)

定义

  1. 通常指的是一个固定的值。

  2. 主要利用关键字final类定义一个常量。

  3. 常量一旦被初始化之后不能再更改其值。

  4. 声明格式:

    final type varName = value;
  5. 1、2等是字面常量,被final修饰的是符号常量

规范

  1. 所有变量、方法、类名:见名知意。

  2. 常量:大写字母和下划线:MAX_VALUE。

  3. 类名:首字母大写和驼峰原则

  4. 方法名:首字母小写和驼峰原则

5. 基本数据类型(primitive data type)

数值型

  1. byte:整数类型,占1个字节

  2. short:整数类型,2个字节

  3. int:整数类型,4个字节

  4. long:整数类型,8个字节

  5. float:浮点类型,4个字节

  6. double:浮点类型,8个字节

字符型

  1. char:2个字节

布尔型

  1. boolean:1位

注意

  1. 引用数据类型占4个字节

  2. 包括类(class)、接口(interface)、数组

  3. 1个字节=8位

6. 整型变量和常量

整型数据类型

  1. byte:1字节 ,8次方,-2的7次方到2的7次方-1,-128到127,其中有0

  2. short:2字节,16次方,-32768到32767

  3. int:4字节,32次方,范围-2三十一次方到2的三十一次方-1,约21亿

  4. long:8字节,2的64次方

  5. 注:其中一位表示正负。

各种进制的表示方法

  1. 十进制:如:99,-10等

  2. 八进制:以0开头

  3. 十六进制:以0x或0X开头

  4. 二进制:以0b或0B开头

  5. 注:整型常量默认是int类型

  6. 注:后面加L表示这是一个long类型的常量,L大小写都行。

7. 浮点型变量和BigDecimal的使用

数据类型

float

  1. 占4字节,-3.403E38~3.403E38

  2. 但精度类型,尾数可精确7位有效数字

  3. float类型的数值有一个后缀F或f

double

  1. 占8字节,-1.798E308~1.798E308

  2. 双精度类型,精度约为float类型的两倍,浮点型常量默认double类型

表示形式

  1. 十进制数形式:3.14 ,314.0,0.314

  2. 科学计数法形式:314e2或314E2表示314乘以10的二次方,等于31400.0, 314E-2表示314乘以10的-2次方,等于3.14

  1. float和int占得字节一样,但表示的范围更广,因为float有效数

  2. 浮点数是不精确的。不要用于比较

  3. 比较的话用BigInteger和BigDecimal,在java.math包下,这两个类可以处理任意长度的数值。BigInteger可以实现任意精度的整数运算。BigDecimal可以实现任意精度的浮点运算。可用于金融领域。

  4. 代码示例:

            double d = 0.1;
    double e = 1.0/10;

    System.out.println(d == e);//类型一样true

    float f = 0.1f;
    double g = 1.0/10;

    System.out.println(f == g);//类型不一样false

     

8. 字符型类型-转义字符

字符型变量/常量

  1. char,占两个字节

  2. 用单引号表示,可允许有65536的字符,包含世界上所有的符号

  3. 通常用从'\u0000'到‘\uFFFF’之间的十六进制值来表示(u代表Unicode)

  4. 代码示例:

            char a = 'T';
    char b = '尚';
    char c = '\u0061';

    System.out.println(a);
    System.out.println(b);
    System.out.println(c);//结果为a

    System.out.println('a'+'b');//结果为195
    System.out.println(" "+'a'+'b');//结果为ab

     

9. 布尔类型

  1. 内存只占1位

  2. 只有两个值,true或false

  3. 不可以使用0或非0的整数代替true和false,这点与c不同

  4. Boolean类型用来判断逻辑条件,一般用于程序流程控制

10. 运算符(operator)

算数运算符

二元运算符

规则
  • 整数运算

    • 如果两个操作数有一个为Long,则结果为Long。

    • 没有Long时,结果为int。即使操作数全为short,byte,结果也是int。

  • 浮点运算

    • 如果两个操作数有一个为double,则结果为double。

    • 只有两个操作数都是float,则结果为float。

    • 运算中有一个浮点数,结果为浮点数。

  • 取模运算

    • 其操作数可以为浮点数,一般是整数,结果是余数

    • 余数符号和左边操作数相同,7%3=1,-7%2=-1,7%-3=1。

自增自减

        //自增,自减
int c = 4;
int d = c++;
System.out.println("c="+c+"\nd="+d);//c=5,d=4,先把c的值赋给d,c再加1

c = 4;
d = ++c;
System.out.println("c="+c+"\nd="+d);//c=5,d=5,c先加1,再把c的值赋给d

赋值运算符

实例

        int e = 3;
int f = 4;
f *= e + 3;//等于f*(e+3)=24,始终先计算符号后面
System.out.println(f);

关系运算符

  1. 结果是布尔值:true/false

逻辑运算符

  1. 逻辑与 &,两边都要查看

  2. 逻辑或 |,两边都要查看

  3. 短路与 && ,如果第一个是false,就不看第二个条件,就是false,否则会查看第二条件

  4. 短路或 ||,如果第一个是true,就不看第二个条件,就是true,否则会查看第二条件

  5. 异或 ^,两边相同false,两边不同true

位运算符

  1. 移位算法,左移<<,相当于乘以2,右移一位>>,相当于除以2

字符串连接符

  1. “+”是连接符

  2. 当“+”两边,有一边是字符串,得到的结果就是字符串

  3. 示例代码

            String a = "3";
    int b = 4;
    int c = 5;
    char d = 'a';
    System.out.println(a+b+c);  //345
    System.out.println(b+c+a);  //93
    System.out.println(d);      //a
    System.out.println(d+4);    //101

条件运算符

  1. 三目运算符

11. 自动类型转换

  1. 指的是容量小数据类型的自动转换成容量大的数据类型

13. 基本数据类型溢出

  1. 注意计算结果可能会溢出

  2. 表达是中两个变量是int,结果是变量,如果溢出,就让其中一个做变量提升成long类型

14. 使用Scanner获取键盘输入

要导入包:import java.util.*;

        Scanner scanner = new Scanner(System.in);
System.out.println("姓名:");
String name = scanner.nextLine();
System.out.println("爱好:");
String favor = scanner.nextLine();
System.out.println("年龄:");
int age = scanner.nextInt();

System.out.println(name);
System.out.println(favor);
System.out.println(age);

15. 流程控制语句

  1. switch多选择结构

            switch(month)
    {
    case 1:
    System.out.println("一月");
    break;
    case 2:
    System.out.println("二月");
    break;
    default:
    System.out.println("其他月");
               break;
    }
    		switch(month)
    		{
    		case 1:
    		case 2:
    			System.out.println("第一节度");//条件1,2,都会打印“第一季度”
    			break;
    		default:
    			System.out.println("其他季度");	
    			break;
    		}

     

    注:

    1. 遇到break,就终止,没有break会接着判断。

    while循环详解

    1. 循环结构分为当型和直到型

    2. for 死循环

    3. for(;;)

      {}

      break 和continue语句

      break

      用于强行退出循环,不执行循环中剩余的语句。

      continue

      1. 用于退出本次循环,继续执行下次循环。

      2. 由内循环跳外循环用带标签的continue,

        格式 标签名:语句;continue 标签名;

      16. 方法

      1. 定义:方法就是一段用来完成特定功能的代码片段,类似于其他语言的函数。

      2. 形参:在方法声明时用于接收外界传入的数据。

      3. 实参:调用方法时实际传给方法的数据,传递的是数据副本

      4. 返回值:方法在执行完毕后返还给调用它的环境数据,如果没有,就是void类型

      5. 方法通过对象调用,一个类调用自己的方法时也要实例化对象

      6. return:1.结束方法的运行。2.返回值

      7. 方法从属于对象和类

      8. 基本类型传递的是值的copy,引用类型传的是对象引用的copy值,但指向的是同一个对象。

      方法的重载(overload)

      1. 定义:一个类中有多个方法的名称重复,但是完全不同的方法。

      2. 不同的含义是:形参类型、形参个数、形参顺序不同

      3. 只有返回值不同不构成方法的重载

      4. 只有形参的名称不同、不构成方法的重载

      5. 方法调用,方法加static修饰,就不用了new 对象,就可以调用方法,否则,必须要new对象才行。

      17. 递归结构

      1. 基本思想:自己调自己。

      2. 递归结构有两部分:递归头和递归体。

      3. 定义递归头,:什么时候不调用自身方法。如果没有头,将陷入死循环,也就是递归的结束条件。

      4. 递归体:什么时候需要调用自身方法。

      5. 爬虫-递归

posted @ 2020-05-16 11:21  Alan之家  阅读(208)  评论(0)    收藏  举报