Java SE笔记(2)

Java SE笔记

二.Java编程基础
1.注释三种的方法
注释有三种:

文档注释:  /**  注释  */-----------用于解释类或方法
多行注释:  /*  注释  */------------用于解释方法内的逻辑
单行注释:  //  注释...

2.java语言的特点:
变量必须在定义期间规定一个类型,赋值时类型必须匹配.

3.关键字

  • 关键字的定义和特点
    • 定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
    • 特点:关键字中所有字母都为小写
      在这里插入图片描述
      在这里插入图片描述

在这里插入图片描述
4.标识符:

  • Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符
  • 凡是自己可以起名字的地方都叫标识符。
  • 定义合法标识符规则:
    • 由26个英文字母大小写,数字:0-9 ,_或 $ 组成
    • 数字不可以开头。
    • 不可以使用关键字和保留字,但能包含关键字和保留字。
    • Java中严格区分大小写,长度无限制。
    • 标识符不能包含空格。
  • 注意:在起名字的时,为了提高阅读性,要尽量有意义,“见名知意”。
元素规范实例
类名Pascal规则Person StudentDemo
变量名Camel规则age height avgValue
方法名Camel规则getAge setUserName
包名全部小写com.crx
常量名全部大写MAX_VALUE

5.量:
存储数据的一个基本单位
量分为: 常量变量
常量指程序里持续不变的值,在整个程序运行过程中它是不可改变的

  • 常见的字面量类型有:
    • 整型字面常量,如:123,067,0X1D, 123L
    • 浮点数字面常量,如:123.4,.18,1.8e1,1.2D,1.2F
    • 布尔型字面常量,如:true,false
    • 字符字面常量,如:‘a’,‘8’,‘\n’,’\u123f’
    • 字符串字面常量,如:“a”,“hello”
    • 引用类型字面常量,如:null

变量:jvm在内存中开辟的一个存储空间,用来存储数据

  • cpu–计算机负责计算的的核心硬件
  • 内存–计算机负责从硬盘中读取数据,进入内存
  • 硬盘–存储数据
  • 内存:用来缓存从硬盘上读取的数据
  • 就可以想象成一个很大很大的存储空间
  • 计算机最小单位:byte(字节)
    程序通过操作变量名来操作存储空间
    变量必须定义一种类型
    变量的命名规则:
    (1)名称由字母,数字,_和$组成,其中数字不能开头
    (2)大小写敏感
    (3)可以用汉字,但不建议
    (4)驼峰命名法,见名知意(myDogName = “比方”)
    (5)不能使用关键字(java保留字)
    定义变量的格式:数据类型 变量名 = 初始化值
    变量的使用规则:
    (1)必须先定义(声明) 后 赋值(初始化)
    (2)变量可以重复使用,即可以进行多次存取操作
    不需要强调类型,但是存储数据时,一定要和声明的类型相匹配
    (3)变量的作用域:变量有自己的使用范围,出了范围,变量失效
    作用域:从定义开始,一直到所在大括号范围的}为止
    出了作用域,若想使用,要重新定义和初始化
    变量的概念:
  • 变量是指在程序的运行过程中随时可以发生变化的量
  • 变量是程序中数据的临时存放场所
    • 保存程序运行时用户输入数据
    • 特定的运算结果等

变量的分类

  • 按被声明的位置划分:

    • 成员变量:方法外部、类的内部定义的变量
    • 局部变量:方法或语句块内部定义的变量
    • 注意:类外面(类对应的大括号外面)不能有变量的声明
  • 按所属的数据类型划分:

    • 基本数据类型变量
    • 引用数据类型变量
      在这里插入图片描述
      整数类型:byte,short,int,long
      byte:也叫字节类型,在内存中占8位二进制,
      即在内存中占一个字节大小的空间,是数据存储的最小单位
      范围:-128~127 -27~27-1

    short:也叫短整型,在内存中占16位二进制
    即在内存中占两个字节大小的空间
    范围:-32768~32767 -215~215-1

    int:也叫整型,在内存中占32位二进制(10位数字)
    即在内存中占四个字节大小的空间
    范围-2147483648~2147483647 -231~231-1

    long:也叫长整型,占内存中占64位二进制
    即在内存中占八字节大小的空间
    范围正负922亿亿 -263 ~ 263-1

在这里插入图片描述

int是最常用的整数类型,因此在通常情况下,直接给出一个整数值默认就是int类型,除此之外,
有如下两种情形必须指出:
1)如果直接将一个较少的整数值(在byte或short类型的表数范围内)赋值给一个byte或short变量,
系统会自动把这个整数值当成byte或者short类型来处理

2)如果使用一个巨大的整数值(超出了int类型的表数范围)时,Java不会自动把这个整数值当成long类型来处理。
如果希望系统把一个整数值当成long类型来处理,应在这个整数值后增l或者L做为后缀。推荐L

//系统会自动把56当成byte类型处理
byte a = 56;

//超出范围,不是int所在的范围
long bigValue = 9999999999999;

//强制使用long类型
long bigValue2 = 9999999999999L;

浮点数类型:float,double

在这里插入图片描述

小数默认为double类型,即64位,若想写32位的浮点数,需要在数值后加f/F;
若将数值1.1234567890123456789
分别存入float m 和double n,输出,查看结果

float num1 =  1.1234567890123456789f;
System.out.println(num1);            

1.1234568

double num2 =  1.1234567890123456789; 
System.out.println(num2);

1.1234567890123457

发现:
浮点数类型在存储数据时,会有舍入误差,即不够精确…但double比float精确
double:双精度浮点数类型精度-----绝对保证15到16位
float:单精度浮点数类型精度------绝对保证6到7位还有最后一位是舍入位

浮点数类型无法精确表示1/10,就像十进制数无法表示1/3一样
所以在运算时,多数情况下都是不精确运算

范围从大到小排序:
double>float>long>int>short>byte

精度从大到小排序:
long>int>double>float

System.currentTimeMillis();

会返回一个long类型的数据,此数据为 从1970年0时0分0秒到系统时间的所有毫秒数

字符类型:char

在内存中占2字节大小,16位二进制
凡是能用书写工具写出来的,都是字符
包括空格,换行符,制表符
赋值特点:

  • 有且仅有一个字符
  • 必须用单引号
    另外特点:
  • 底层二进制是无符号的整数类型,即0~ 216-1(0~65535)
    所以,赋值时也可以赋值整数.但是,存入变量空间后,是其整数对应的字符

java语言默认使用字符集位Unicode.
Unicode字符集:
无论字母,还是汉字,都占两个字节
‘A’—00000000 01000001
‘a’—00000000 01100001
‘0’—00000000 00110000

什么是字符集:
即二进制和字符一一对应的关系表

编码:将字符 —>二进制 存
解码:将二进制 —>字符 读

写文件时,采用Unicode输入的,必须用Unicode输出,否则会乱码(其他的字符集也一样)

JAVA语言常用的字符有
‘A’–‘Z’ 65-90
‘a’–‘z’ 97-122
‘0’–‘9’ 48-57

char 类型是可以进行运算的。因为它都对应有 Unicode 值

char a = 'a';
int sum =  2 + a;
System.out.println(sum);

99

JAVA语言中的转义字符:’\’:将特殊字符变成相应意义的字符

JAVA语言的特殊字符:
在这里插入图片描述

在这里插入图片描述

查看字符集中某一字符对应的整数,将字符赋值给int类型的变量,即可
int num = ‘晨’;

布尔类型:用来判断条件是否成立

  • 在内存中占1个内存大小
  • 只有两个值:true/false;成立/不成立;
  • boolean 类型适于逻辑运算,一般用于程序流程控制:
    • if条件控制语句;
    • while循环控制语句;
    • do-while循环控制语句;
    • for循环控制语句;
  • boolean类型数据只允许取值true和false,不可以0或非 0 的整数替代true和false,这点和C语言不同。

类型转换:
自动类型转换:容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序为:
在这里插入图片描述
有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
当把任何基本类型的值和字符串值进行连接运算时(+),基本类型的值将自动转化为字符串类型。

强制转换(显式转换):范围大的赋值给范围小的类型变量,需要强制转换;
double->float->long->int->short->byte
任何类型变量转换成char都需要强制转换
语法:(强制转换类型名(范围小的))变量;
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(())但可能造成精度降低或溢出,格外要注意。
通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。如: String a = “43”; int i = Integer.parseInt(a);
boolean类型不可以转换为其它的数据类型。

6.进制

  • 十进制 二进制互转
    • 十进制转成二进制 除以2取余数
    • 二进制转成十进制 乘以2的幂数

在这里插入图片描述

在这里插入图片描述

  • 所有数字在计算机底层都以二进制形式存在
  • 原码直接将一个数值换成二进制数
  • 计算机以补码的形式保存所有的整数
    补码的计算规则:
  • 正数的补码与其源码相同;负数的补码是在其反码的末位加1
  • 反码:是对原码按位取反,只是最高位(符号位)保持不变
  • Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;当是long类型时,二进制默认占64位,第64位是符号位

在这里插入图片描述

public static void main(String[] args) {
		int iValue = 233;
		byte bValue = (byte) iValue;
		System.out.println(bValue);
	}

-23

在这里插入图片描述
7.算术运算符
在这里插入图片描述
算术运算符的注意问题

  • 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是负数就另当别论。
  • 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。

赋值运算符

  • 符号:=
  • 扩展赋值运算符:+=,-=,*=,/=,%=
    在这里插入图片描述
    比较运算符
    在这里插入图片描述
  • 注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
  • 注2:比较运算符“==”不能误写成“=” 。

逻辑运算符
在这里插入图片描述

  • 逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 && x<6 。
  • “&”和“&&”的区别:
    • 单&时,左边无论真假,右边都进行运算;
    • 双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
  • 和“||”的区别同理,双或时,左边为真,右边不参与运算。
  • 异或( ^ )与或( | )的不同之处是:对于 ^ 而言,当左右都为true时,结果为false。

位运算符
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

public static void main(String[] args) {
		int i = 1;
		boolean b = i !=1 && (i++)==2;	//短路与,i++不执行
		System.out.println(b);	//false
		System.out.println(i);	//2
		b = i != 1 & (i++) ==2;	//短路或. i++不执行
		System.out.println(b);	//true
		System.out.println(i);	//2
	}

false
1
false
2

三元运算符

  • 格式:
    • (条件表达式)?表达式1:表达式2;
    • 如果条件为true,运算后的结果是表达式1;
    • 如果条件为false,运算后的结果是表达式2;

所谓三元运算符,是对三个表达式进行的集中比较,表达式1的结果为true时,就为第二个表达式,如果为false时,就为第三个表达式。语法是:
表达式1?表达式2?:表达式3
通过下面代码说明三元运算符。

public static void main(String[] args) {
		//4<3表达式的结果为true和false的其中一个
		boolean n = (4<3) ? true : false;
		//打印并显示结果
		System.out.println(n);
	}

false

Java中运算符的优先级与结合方向
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值