Java基础语法
计算机内存
1.内存的作用
内存的作用主要是用来平衡CPU的处理速度和硬盘的读取速度。一块正常的机械硬盘连续读取速度是100M/s。而CPU的处理速度远远超过这个速度。所以如果没有内存的参与,可能会产生硬盘全力读取,CPU却一直空闲的状态。
2.内存工作原理
-
数据形式
在计算机中其实没有数据的概念,只有0、1。也就是电信号,0表示断电,1表示通电
进制 -
数据是由0、1组成的,不同的情况有不同的使用,那必须有不同的进制
-
数据分类
不同类型的数据进行存储要提前分类,内存要确保自己存储的信息能被认知 -
数据存储
将大量0、1组成的数据在内存中用元器件的通电与断电形式进行存储,所以内存只能临时存储数据 -
数据的存储绝不是一窝蜂往内存里堆,而是按照数据的类型,有序的将数据进行合理的存储
3.Java内存
声明
由于堆的特性,我们在使用内存时需要先向内存堆申请一块空间,这块空间的申请必须注明数据类型
标识
由于栈的特性,我们需要首先定义一个标识符,表示我们通过这个标识去寻找这块空间
赋值
内存堆的使用必须有意义,无效的内存堆空间(null)是一种浪费,不被内存所认可,所以必须申请空间后进行赋值
使用
前三步已经完成了对内存的使用,接下来就是通过标识符来使用它
八大数据类型
Java中的数据类型:
整数(byte、short、int、long)基本数据类型:
小数(float、double)
非数字(char、boolean)
变量
1.什么是变量
(声明 标识 赋值 使用)成功完成了对内存的使用,并得到一块存有数据的空间 → 变量
2.变量的存储方式
3.变量和内存的关系
每个变量都对应一块小内存,变量名用来用来查找对应的内存
4.使用变量
使用变量时,因为有标识符的存在,所以什么地方需要使用只需要写标识符即可。
5.变量的命名规范
1.只能用英文、下划线、数字、美元符号结尾
2.只能用英文、_、美元符号开头
3.不能使用关键字命名
4.有意义
5.首个单词首字母小写其余首字母大写
6.虽然可以但一般不使用_美元符号
6.常用关键字
运算符
赋值运算
=就是赋值运算符,目的是将=右边的数据,赋值给=左边的空间。
即:=右边永远都是数据,或可以得到数据的表达式;=左边永远都是一块可以存放对应数据类型的空间
算数运算
+、-、、/、%、++、–、+=、-=、=、/=、%=
- +比较特殊,在几个数字的运算中,+扮演了“加”的角色。
在字符串中却扮演了“连接”的角色。 - 在编程语言中,除法运算被拆分成了两部分,求商和求余数。
/要用来求商,%用来求余数。 - num1++,是num1 = num1 + 1;的缩写,也就是让num1本来的值加1。
num1–,是num1 = num1 - 1;的缩写,也就是让num1本来的值减1。
++num1,作用同num1++,但在程序中会优先计算,num1++则会优先使用变量的现有值。
–num1,作用同num1–,但在程序中会优先计算,num1–则会优先使用变量的现有值。 - num1+= 2,是num1 = num1 + 2;的缩写,也就是让num1本来的值与2相加。
num1-= 2,是num1 = num1 - 2;的缩写,也就是让num1本来的值与2相减。
*=、/=、%=,同理。
比较运算
比较运算符 >、<、>=、<=、==、!=、equals
int num1 = 10;
int num2 = 5;
System.out.println(num1>num2);//结果为ture
int num1 = 10;
int num2 = 10;
System.out.println(num1<=num2);//结果为ture
int num1 = 10;
int num2 = 5;
System.out.println(num1==num2);//结果为flase
int num1 = 10;
int num2 = 10;
System.out.println(num1!=num2);//结果为flase
String str1 = “大”;
String str2 = “大”;
System.out.println(str1.equals(str2));//结果为ture
String str1 = “小”;
String str2 = “大”;
System.out.println(str1.equals(str2));//结果为flase
注意:单个=是赋值运算符,两个 == 才是比较。
==用来判断基本数据类型是否相等,而String属于引用数据类型。
equals专门用来判断两个字符串的值是否相等。
逻辑运算
逻辑运算符 &、|、!、&&、||
比较运算符是用来对运算符左右两个变量的值进行比较,得到结果是boolean类型,因为无论是何种比较,结果只有真或假两种。
x == 33 & ++y>0 该表达式无论结果如何,y的值总会+1。x == 33 && ++y>0 则y的值不+1。
表达式x == 33 | ++y>0和表达式x == 33 || ++y>0 同理。
运算符优先级
()>!>算数运算符>比较运算符>&&>|| >赋值运算符
当运算优先级不够时,可以在表达式外边增加小括号()来提升表达式的优先级。
三目运算
表达式?结果1:结果2;
String str2 = “大大”;
int num1 = str1.equals(str2) ? 521 : 666;
System.out.println(num1);//结果为666
?是三目运算符,当表达式结果为true,则执行?后面的代码;当表达式结果为false,则执行:后面的代码。