ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java学习笔记 第二章 java基础

2021-05-14 21:34:42  阅读:107  来源: 互联网

标签:Java int 数据类型 System 运算符 类型 java 第二章 out


JAVA学习笔记第二章

2.JAVA基础

2.1输出输入

System.out.print 将双引号中的内容原样输出,不换行

System.out.println 将双引号中的内容原样输出,换行

转移字符:

\就是转移字符:作用将后面普通的字母转换为特殊含义

\n 换行

\t 制表符tab

输入:

import java.util.Scanner; //在java.util下将Scanner拿过来用
public class Test{
  public static void main(String[] args){
    //创建一个扫描器
    Scanner sc = new Scanner(System.in);
    //让扫描器扫描键盘录入的int类型数据
    int r = sc.nextInt();
  }
} 

import java.util.Scanner;
public class Test{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    System.out.println("name:"); 
    String name = sc.next();
    System.out.println("age:");
    int age = sc.nextInt();
    System.out.println("height:");
    double height = sc.nextDouble();
    //没有nextChar()
    String sexStr = sc.next();
    char sex = sexStr.charAt(0);
    //char sex = sc.next().charAt(0);
  }
}

2.2数据类型

2.2.1标识符

包,类,变量,方法...

只要是起名字的地方,那个名字就是标识符

标识符的定义规则:

  • 可以是数字、字母、下划线、美元符号
  • 不可以以数字开头
  • 不可以使用java中的关键字
    • 数据类型的关键字:class interface enum byte short int long float double char boolean void
    • 定义流程控制的关键字:if else switch case default while do for break continue return
    • 定义访问权限修饰符的关键字:public protected private
    • 定义类,函数,变量修饰符的关键字:abstract final static synchronized
    • 定义类与类之间的关系的关键字:extends implements
    • 定义建立实例及引用实例,判断实例的关键字:new this super instanceof
    • 用于异常处理的关键字:try catch finally throw throws
    • 用于包的关键字:package import
    • 其他修饰符的关键字:native strictfp transient volatitle assert
  • 见名知义
  • 大小写敏感
  • 驼峰命名
    • 类名 首字母大写,其余遵循驼峰命名
    • 方法名,变量名:首字母小写,其余遵循驼峰 命名
    • 包名:全部小写,不遵循驼峰命名
  • 长度无限制,但是不建议太长

2.2.2常量

java中常用final来定义一个常量,常量一旦被初始化之后不能修改值

整型常量 123

实型常量 123.123

字符常量 'a'

逻辑常量 true false

字符串常量 "hello"

一个变量被final修饰,这个变量就变成一个常量,这个常量的值就不可变了。

字符常量常定义为大写

2.2.3变量

变量本质上就是代表一个“可操作的存储空间”,通过变量名来访问“对应的存储空间”,从而操纵这个存储空间存储的值。java是一种强类型的语言,每个变量都必须要声明其数据类型,变量的数据类型决定了变量占用存储空间的大小,int a=3;表示a变量空间大小为4个字节,变量作为程序中最基本的存储单元,包括变量名、变量类型、作用域。必须在使用前对变量声明,才能为其分配相应长度的存储空间。

变量声明的格式

type varName[=value][,varName[=value]...];
数据类型 变量名[=初始值][,变量名[=初始值]...];

作用域:指的就是作用范围,变量在什么范围中有效,作用范围就是离它最近的{}

2.2.4数据类型分类

基本数据类型

  • 数值型:bytes, short, int, long, float, double
  • 字符型:char
  • 布尔型:boolean

引用数据类型(除了基本数据类型都属于引用数据类型)

  • 类class
  • 接口interface
  • 数组
2.2.4.1整型数据类型
类型 占用存储空间 表示范围
byte 1字节 -128 ~ 127
short 2字节 -32768 ~ 32767 (-2^15 ~ 2^15 - 1)
int 4字节 -2147483648 ~ 2147483647
long 8字节 -2^63 ~ (2^63)-1

注意:超出范围的赋值会报错

long num = 12345678910;
//整数类型默认是int类型的,所以12345678910时一个int类型的数,对于int类型来说,它超出范围
//要想把一个数给long类型变量,那么后面加上L或者l即可
long num1 = 12345678910L;
//只有这个整数超出int类型的范围了,后面才需要加上L,否则无需加L也可以赋值给long类型。

进制:逢几进位

二进制:B 前面加上0b

八进制:Q 前面加上0表示八进制

十进制:D 一般表示就是十进制

十六进制:H 前面加上0x表示十六进制

2.2.4.2浮点数

十进制数:3.14 314.0 0.314

科学计数法: 314e-2 ----> 314 * 10 ^ (-2)

float类型又称为单精度类型,尾数可以精确到7位有效数字,很多情况下float不够,double则是float类型精度的两倍,float类型的数值后缀F或者f,没有后缀F/f的浮点数值默认为double类型,也可以在浮点数值后添加后缀D或者d,明确其为double类型。

有效位数指的是从左开始第一个不为0的数到最后一个数

类型 占用存储空间 表示范围
float 4个字节 大约+-3.40282347E+38F(有效位数6-7位左右)
double 8个字节 大约游戏哦啊位数为15-16位左右

注意最好不要进行浮点类型的比较

2.2.4.3字符类型

编码和字符集:

什么是编码

ascii 英文字符集 用一个字节的7位表示

IOS8859-1 西欧字符集 用一个字节的8位表示

GB2312 简体中文字符集 最多使用两个字节编码

GBK 升级版GB2312,加入繁体字,最多使用两个字节编码

Unicode 国际通用字符集,融合目前人类使用的所有字符,为每个字符分配唯一的字符码,兼容ascii,前128个位置ascii

utf-8

常使用单引号表示字符常量,字符型在内存中占用两个字节

char类型用来表示在unicode编码表中的字符,unicode编码被设计用来处理各种语言文字,占用2个字节,可允许65536个字符。

转义字符

转义符 含义 unicode值
\b 退格 \u0008
\n 换行 \u000a
\r 回车 \u000d
\t 制表符 \u0009
\" 双引号 \u0022
\' 单引号 \u0027
\\ 反斜杠 \u005c
char c1 = 'A'
//char类型我们看到的样子就是它本身的字面常量,但是底层在计算的时候实际上是按照ascii码进行计算的
//ascii表记住 A-65  Z-90 a-97 z-122

记事本编码一般使用ANSI或者UTF-8编码,ANSI会查看当前操作系统的编码,使用操作系统的编码

2.2.4.4布尔值

boolean类型有两个常量,true和false,在内存中占一位,不可以使用0或者非0的整数代替true和false。

常用来判断逻辑条件,一般用于程序流程控制。

2.2.4.5强制类型转换

在赋值或者算数运算的时候,要求数据类型一致,就要进行类型的转换

存在两种转换的种类:自动转换和强制转换

double d = 6; //int --> double 自动转换
int i = int(6.5); // double --> int 强制转换

//多种数据类型参与运算的时候,整数类型,浮点类型,字符类型都能参与运算,唯独布尔类型不可以参与运算
//类型级别从低到高:byte, short, char, int, long, float, double
//找到级别最高的数据类型,其余的类型都转换为当前表达式中的级别最高的类型进行计算
//左>右 自动转换 左<右 强制类型转换 左=右 直接赋值
  
//特殊情况 对于byte, short, char类型来说,只要在他们的表示范围中,赋值的时候不需要进行强制转换
byte b = 12;

2.3运算符

java支持的运算符:

算数运算符: + - * / % ++ --

赋值运算符: ==

扩展赋值运算符: += -= *= /=

关系运算符:> < >= <= == !=

逻辑运算符: && || ! & | ^

位运算: & | ^ ~ >> << >>>

条件运算符:? :

运算符Operator

表达式expression

操作数Operand

语句Sentence

++和--规则:在前面,先加1或者减1再进行计算,在后面,先计算之后再加1或者减1

int a = 5;
int m = a++ + 7;  // m = a + 7; a = a + 1;
int n = ++a + 7;  // a = a + 1; n = a + 7;
int a = 5;
System.out.println(a++ + a++); //运算符优先级: ++ > +
//5 + 6 = 11; a = 7;

System.out.println(a++ + ++a);
//7 + 9 = 16; a = 9;

System.out.println(++a + a++);
//10 + 10 = 20; a = 12;

System.out.println(++a + ++a);
//12 + 13 = 25; a = 14;

逻辑运算符:左右都是布尔值

逻辑与&:规律只要有一个操作数是false,结果一定为false

短路与&&:效率更高一些,只要第一个为false,后面的表达式不用再计算,结果一定为false

逻辑或|:只要有一个操作数是true,结果一定为true

短路或||:效率跟高一些,只要第一个为true,后面的表达式不用再计算,结果一定为true

逻辑非!:与表达式的结果相反

逻辑异或^:两个表达式结果相同,结果为false,表达式结果不相同,结果为true

image-20210513180800293

条件运算符:三目运算符

格式a?b:c

如果a的结果为true,表达式的结果为b,a的结果为false,表达式的结果为c

位运算符:左右连接的都是数字

在底层是按照位进行操作的

>>>是无符号右移

~表示按位取反

image-20210513210945103

image-20210513211018093

image-20210513211049277

运算符的优先级:

image-20210513211133313

2.4流程控制

控制语句的执行顺序,控制语句分为三种:顺序结构、条件判断结构、循环结构

条件判断结构

  • if

image-20210513211702681

image-20210513211841831

image-20210513212004068

image-20210513212113276

随机数的生成

image-20210513223702274

分支的练习题目:

image-20210513224751482

package code;
import java.util.*;

public class RemoveDesk {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入性别");
        char sex = sc.next().charAt(0);
        System.out.println("清输入年龄");
        int age = sc.nextInt();
        if (age > 7) System.out.println("可以搬桌子");
        else if ( age > 5 && sex == '男') System.out.println("可以搬桌子");
        else System.out.println("你还太小了");

    }
}

  • switch

image-20210513225912045

image-20210513230113049

image-20210513230136116

image-20210513230206854

循环结构:

  • while

image-20210513230250267

image-20210513230506358

  • do while

image-20210513230619128

image-20210513230719859

  • for

image-20210513230816713

image-20210513230853444

流程控制的三个重要关键字

image-20210513230954074

break的作用:停止最近的循环

continue的作用:结束本次最近的循环,进入下一次循环

return的作用:遇到return结束当前正在执行的方法,跟循环无关

2.5方法

image-20210514003908332

image-20210514004134147

image-20210514004227679

image-20210514004552027

image-20210514004526327

image-20210514004938220

image-20210514005113243

image-20210514005442079

image-20210514005557099

image-20210514005645136

2.6数组

image-20210514010649910

image-20210514010342417

使用:

image-20210514010506990

数组的内存分析:

image-20210514010216567

数组的遍历:

image-20210514011036259

image-20210514011226582

image-20210514011240649

image-20210514011501653

image-20210514011753983

image-20210514011948729

Arrays工具类

image-20210514013635050

image-20210514013754993

image-20210514013929117

image-20210514014020386

在System中也存在copy数组的方法

image-20210514014301916

image-20210514014235561

二维数组:

image-20210514014617577

image-20210514014807739

image-20210514014928274

image-20210514014951189

image-20210514015016420

2.7main方法

image-20210514012454282

image-20210514012857857

手动传入实际参数:

image-20210514012928739

2.8可变参数

image-20210514013131133

方法内部对可变参数的处理和数组一样,当和其他参数使用时,可变参数放最后。

2.9IDEA

image-20210514015128855

image-20210514193429155

image-20210514193511543

image-20210514193527785

image-20210514193626388

image-20210514200231489

常用代码模版:

image-20210514201114958

调试:

image-20210514201649967

标签:Java,int,数据类型,System,运算符,类型,java,第二章,out
来源: https://www.cnblogs.com/wrrr/p/14769980.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有