java学习 前置知识

基本知识:
1.内存:瞬时(临时)状态下的存储空间,造价高,工业上的设计瓶颈。
2.变量:计算机内存中的一块存储空间,是存储数据的基本单元。

  • 整个内存就像酒店,当中包含多个房间。
  • 房间的类型有所不同。(数据类型)
  • 每个房间都有一个唯一的门牌号。(变量名)
  • 房间的住客不同。(值)

定义流程:
先声明:数据类型 变量名;
再赋值:变量名 = 值;
或声明并赋值: 数据类型 变量名 = 值;

public class Test{
	public static void main(String[] args){
		int money;//开辟整数变量空间
		money = 100;//将整数值赋给变量
		System.out.println(money);//输出后换行  print仅打印输出,不换行
		int age = 20; 
		System.out.println(age);
	}
}

多个同类型变量的声明和赋值(不常用,可读性差): 数据类型 变量名 = 值,变量名 = 值;
注意:变量需要先赋值,再使用,否则报错:尚未初始化。
3.java虚拟机默认分配的物理内存是内存的八分之一。
bit(位)->Byte(字节)->KB->MB->GB->TB->PB->EB->ZB->YB->NB->DB->CB->XB

**

数据类型

**
java中的变量有严格的数据类型区分。在Java中。任何一个值都有其对应类型的变量。

  1. 基本数据类型
    • 整数
    • 小数
    • 布尔
    • 字符
  2. 引用数据类型
    • 字符串
    • 数组
    • 对象

二进制表现形式:
byte == 8bit 如:十进制 1 = 二进制 0000 0001。(第一个为符号位,0代表正数,1代表负数) -1 = 1111 1111 ;-128 = 1000 0000

整数

类型字节取值范围(二进制)取值范围(十进制)
byte1字节-2^7-- 2 ^7-1-128~127
short2字节-2^15–2 ^15-1-32768~32767
int4字节-2^31 --2 ^31-1-2147483648~-2147483647
long8字节-2^63–2 ^63-1-9223372036854775808~9223372036854775807

输入一个整数(先存数(此时默认该数是int类型),再将数放在变量里)
long类型赋值,需要在值的后面加L(超过int 2147483647的才需要)。

long i = 2147483648;/虽然值在long的范围内,但因这个整数超出了int,而java默认为int,因此会报错。
long i = 2147483648L;/后面加一个L后,即认为这个整数是long类型,运行不会报错。

程序运行过程中,瞬时空间(局部变量表 -Slot 槽,一个槽可以存储 byte short int char boolean … reference,不包含long double,最大空间2^32位。long double用两个槽)
赋值时不必精准匹配什么类型。一般用int就行。byte因代表1字节因此在字节流部分有特别用途。
小数/浮点数

类型字节负数取值范围正数取值范围
float4字节,单精度-3.4E+38~~-1.4E-451.4E-45~3.4E+38
double8字节 ,双精度-1.7E+308~-4.9E-3244.9E-324~1.7E+308

浮点型数值采用科学计数法表示:
2E3 = 2*10^3 结果 2000.0。
为float类型赋值后面+ F(因为浮点型默认类型是double)。
当然,0.0是可以的。
java使用的IEE7E54二进制浮点数算术标准。
double,float不是精确运算,都是近似结果。
float:32bit。 1bit 符号位 8bits指数位 23 bits尾数位。
double: 64bit。 1bit 符号位 11bits 指数位 52bits尾数位。存的都是近似值
也就是为什么int和float都是4字节,而为什么float存储的取值范围更大。

布尔

类型字节取值范围描述
boolean1字节true/false仅可描述真或假

可直接复制true/false,或一个结果为true或false的表达式

Boolean result = 3 > 2;

java中boolean不能参与算术运算。

字符

类型字节取值范围(无符号数)字符编码
char2字节0~65535Unicode字符集(万国码)
char c1 = 'A';
char c2 = 65;
char c3 = '中';
system.out.println(c3);
system.out.println((int)c3);

Unicode字符集支持ASCII编码
Unicode中每个字符对应一个十进制整数,从而可以多种方式赋值

  • 字符赋值:char c1 = ‘A’ ;通过’'描述为字符赋值。
  • 整数赋值:char c2 =’ 65’;通过十进制赋值。
  • 进制赋值:char c3 = ‘\u0041’;通过16进制数41在字符集中对应的字符赋值。

转义字符

转义字符描述
\n换行符
\t制表符
\反斜线
单引号
"双引号

引用数据类型(字符串)

类型取值范围字符编码
String任何""之间的内容Unicode字符序列

字符串内部是字符数组
可以为空
类型转换

  • 自动类型转换
    • 两种类型互相兼容
    • 目标类型大于源类型
      如:short → int → double
short s = 127;
int i = s;
double d = i;

强制类型转换
失去精度:

  • 小数强转为整数,如double → int
  • 整数强转为整数,大的往小的里面放,如short→byte
double d =12.34;
int i = (int)d;
System.out.println(i);
 
short m = 130;
byte n = (byte)m;
System.out.println(n);

强制转换规则:

  • 整数长度足够,数据完整
  • 整数长度不够,数据截断
  • 小数强制转整数,小数位丢失
  • 字符整数互转,数据完整。
  • boolean的取值为true/false 不可与其他类型转换

类型提升
进行算术运算时:

  • 两个操作数有一个小数,类型就自动转为double
  • 两个操作数没有double,有一个为float,计算结果提升为float
  • 如果操作数中没有float,有一个long,计算结果提升为long
  • 如果操作数中没有long,有一个为int,计算结果提升为int
  • 如果操作数中没有int,均为short或byte,计算结果提升为int
    特殊:任何类型与String相加(+)拼接时,其结果自动提升为String

运算符

算术运算符描述
+相加
-相减
*相乘
/相除取整
%相除取余

++,–,递增、减1
a++和++a区别:前++的优先级最高,后++的优先级最低,因此前++是先自加再使用而后++是先使用再自加
赋值运算符:等号右边赋值给等号左边

赋值运算符描述
=直接赋值
+=求和后赋值
-=求差后赋值
*=求积后赋值
/=求商后赋值
%=求余后赋值

关系运算符:两个操作符比较,运行之后等到一个Boolean类型

关系运算符描述
>大于
<小于
>=大于等于
<=小于等于
==等于
!=不等于

逻辑运算符:两个Boolean类型的操作数或者表达式进行逻辑比较

操作符语义藐视
&&与(并且)同时为真,结果为真
||或(或者)一个为真,结果为真
!非(取反)真即为假,假即为真

三元运算符:将判断的结果赋值给变量

操作符语义描述
?:布尔表达式?结果1:结果2当表达式为真,获得结果1,为假获得结果2

控制台输入
程序运行中,可在控制台(终端)手动录入数据,再让程序继续运行。
1.导包 import 包名.类名;//将外部class文件功能引入到自身文件中
import java.util.Scanner;
2.声明Scanner类型的变量;

Scanner input = new Scanner(System.in);
System.out.println("请输入一个值:");
int num = input.nextInt();//将控制台获取的一个整数值,赋值给num变量
System.out.println("您输入的值为:" + num );

nextInt()、nextDouble()
next()接收字符串。
next().charAt(0);接收首个字符

String s = input.next();
char c = input.next().charAt(0);

如果输入不匹配的数据,则会产生java.util.InputMismatchException

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值