Java学习笔记------java常量、基本数据类型、数据类型转换、运算符、方法

Java学习笔记

1.常量的分类

字符串常量,整数常量,浮点数常量,字符常量,布尔常量,空常量(null)

2.基本数据类型

整数型:byte short int long
浮点型:float double
字符型:char
布尔型:boolean
java中默认的类型:整数类型是int 浮点类型是double

数据类型关键子内存占用取值范围
字节型bype1个字节-128~127b
短整型short2个字节-128~127
整型int4个字节-231次方~2的31次方-1
长整型long8个字节-2的63次方~2的63次方-1
单精度浮点型float4个字节1.4013E-45~3.4028E+38
双精度浮点型double8个字节4.9E-324~1.7977E+308
字符型char2个字节0-65535
布尔类型boolean1个字节true false

3.引用数据类型(今后学习再补充)

字符串,数组,类,接口,Lambda。
注意事项
1.字符串不是基本类型,而是引用数据类型。
2.浮点型可能是近似的值,并非是精确值。
3.数据范围与字节数不一定相关。
4.浮点数中默认的类型是double,如果要使用float,需要加上后缀F
如果是整数,默认使用int,如果要使用long,默认加上后缀L。
System.out.println(“100L”)
使用变量注意事项
(1)多个变量名称不能重复。
(2)对于float和long类型的变量,后缀名L和F不能去掉。
(3)如果使用byte和short类型的变量,不能超出对应类型取值范围
(4)变量必须要先赋值,再使用。
(5)变量不能超过作用域的范围【作用域:从定义变量开始,一直到所属的大括号结束】
(6)可以使用一个语句创建多个变量,但是一般不推荐这样使用。

4.数据类型转换

在java中,当数据类型不一样时,将会发生数据类型转换。
1.自动数据类型转换(隐式)

  • 特点:代码不需要特殊处理,
  • 规则:数据范围从小到大

例如:

//这个时候,左边是long类型,右边默认是int类型。
//int--->long符合了从小到大的规则,自动数据类型转换。
long num1=100;
System.out.println(num1);
//这个时候,左边是float类型,右边默认是long类型。
//long--->float符合了从小到大的规则,自动数据类型转换。
float num1=30L;
System.out.println(num1);

2.强制数据类型转换(显示)

  • 特点:代码需要特殊处理,不能自动完成
  • 格式:范围小的类型 范围小的变量名=(范围小的类型)范围大的数据
//格式:范围小的类型  范围小的变量名=(范围小的类型)范围大的数据
int num1=(int)100L;
System.out.println(num1);

注意事项:
1.强制数据类型转换,一般不推荐使用。因为有可能发生精度损失,数据溢出。

//对于整数的情况   long强制转换为int
int num1=(int)6000000000L;
System.out.println(num1);1705032704      此时发生了数据溢出
//对于小数的情况   double--->int
int num1=(int)6.5;
System.out.println(num1);6      
//此时发生了精度损失  这个并不是四舍五入,而是所以小数被舍弃

2.byte/short/char这三种数据类型都可以发生数学运算,例如加法"+"

char num1='A';   //这是字符型变量,里面是大写字母A
System.out.println(num1+1);  //输出66,也就是大写字母A被当作65处理了
//计算机的底层会用一个二进制的数字来代表字符A,65
//一旦char类型进行了数学的运算,那么对应的字符就会翻译成对应的数字

3.byte/short/char这三种数据类型在进行数学运算的时候,首先都会被提升为int类型,然后再进行运算。

byte num1=40;   
byte num2=50;   
//byte+byte---->int+int
int result=num1+num2;
System.out.println(result); 

4.boolean不能进行任何数据类型转换

5.ASCII码

ASCII码(American Standard Code for Information InterChange 美国信息交换码表 0-127)
Unicode码表(万国表 0-127和Ascii一样,128以后包含更多的字符)

ASCII控制字符ASCII控制字符ASCII控制字符
48065A97a
49166B98b
50267C99c

在这里插入图片描述

6.算数运算符

运算符:进行特定操作的符号,+ - * /
表达式:使用运算符连接起来的式子。例如:20+5,又如:a+b

算数运算符包括Value
-加法运算,字符串连接运算
-减法运算
-乘法运算
/除法运算
%取模运算,两个数字相除取余数
++ –自增自减运算

四则运算:加减乘除

int a=10;
int b=20;
System.out.println(a+b);    //输出30
System.out.println(a-b);     //输出-10
int x=10;
int y=3;
//对于一个整数的除法,整数除以整数,得到的依旧是整数。(取商,不要余数)
int result=x/y; 
System.out.println(result);     //输出3

取模运算% 取余数—只有对于整数的运算,这个取模运算符才有意义。

int x=10;
int y=3;
int result=x%y; 
System.out.println(result);     //输出1   取得是余数

注意事项:一旦运算过程中有不同类型的数据,那么结果将会是数据范围大的那一种。

//int+double--->double+double=double
int x=10;
double result=x+3.5; 
System.out.println(result);     //输出13.5

四则运算当中,"+"加法运算的常用三种用法:

  • 对于数值来说,就是简单的加法。
  • 对于char字符来说,先转换成对应的ascii码,在进行计算之前,char被提升为int类型,然后再进行计算。
  • 对于字符串String类型来说,加号代表字符串的连接操作。(任何数据类型和字符串连接的时候,结果都是字符串)
// 字符串连接
String  str="Hello";
System.out.println(str+"World');//输出HelloWorld
System.out.println("Hello"+20);//输出Hello20

自增自减运算
自增运算符++
自减运算符- -
含义:让一个变量数据加1,或者让一个变量数字减1
使用格式:++num --num num++ num–
使用方式:

  • 单独使用:不和其他的任何操作使用,自己单独操纵。
  • 混合使用:和其他操作混合,例如和赋值操作混合。,

使用区别:

  • 单独使用的时候前++和后++没有任何区别。
  • 在混合使用的时候,前++和后++有重大区别
    – A:如果是【前++】,那么变量值立马加1,然后再作为结果使用。
    – B:如果是【后++】,那么首先使用变量原来的值,然后再进行加1操作。
//单独使用
int num=1;
++num;
System.out.println(num);   //输出2
num++;
System.out.println(num);   //输出3
// 混合使用【前++】  与打印操作混合使用
int num1=20;
System.out.println(++num1);   //输出21
// 混合使用【后++】与打印操作混合使用
int num2=20;
System.out.println(num2++);   //输出20
// 混合使用【前--】  与赋值操作混合使用
int num3=40;
int result=--num3;   //前--。变量马上变成了39,然后再赋值给result
System.out.println(result);   //输出39
int num4=50;
int result=num4--;后--,变量先把值赋值给result,然后再--
System.out.println(result);   //输出50
7.赋值运算符
赋值运算符包括Value
=等于号
+=加等于
-+减等于
*=承等于
/=除等于
%=取模等于

赋值运算符:就是将符号右边的值,赋值给左边。
基本赋值运算符:

  • = int a=30;

复合赋值运算符:

  • +=   a+=1相当于a=a+1;
  • -=   a-=1相当于a=a-1;
  • =   a=1相当于a=a*1;
  • /=   a/=1相当于a=a/1;
  • %=   a%=1相当于a=a%1;
int a=10;
a+=5;
System.out.println(a);   //输出15

注意事项

  • 只有变量才能使用赋值运算符。
  • 赋值运算符中隐含了一个强制类型转换
byte num=5;
//byte+int---->int + int;
//num=(byte) int;
 num+=5;
8.比较运算符
比较运算符包括Value
==比较两边数据是否相等,相等结果是true
<比较符号左边的数据是否小于右边的数据,如果小于结果是true。
>比较符号左边的数据是否大于右边的数据,如果大于结果是true。
<=比较符号左边的数据是否小于或者等于右边的数据,如果小于结果是true。
>=比较符号左边的数据是否大于或者等于右边的数据,如果小于结果是true。
!=不等于符号 ,如果符号两边的数据不相等,结果是true。

比较运算符是比较两个数据的大小,比较运算符的结果是true或者false;

System.out.println(10>5);   //输出true

注意:

  • 一个等号是赋值运算,两个等号是比较是否相等运算。
  • 比较运算符的结果只能是true或者false
  • 如果进行多次判断,不能连着写。(数学中1<x<2,但是程序中不允许这样写)
9.逻辑运算符
逻辑运算符包括Value
&& 短路与1. 两边都是true,结果是true 2. 一边是false,结果是false 短路特点:符号左边是false,右边不再运算
|| 短路或1. 两边都是false,结果是false 2. 一边是true,结果是true 短路特点: 符号左边是true,右边不再运算
!取反1. ! true 结果是false 2. ! false结果是true

与或运算符可以连着写。

System.out.println(true && true);   //输出true
System.out.println(3>1 && 2<5);   //输出true
System.out.println(true || false);   //输出true
System.out.println(false || false);   //输出false
System.out.println(!false);   //输出true

注意–什么是短路
当左边可以得到最终的结果的时候,那么不管右边结果是什么,都不再进行判断,节省了一步操作。

// 短路例子
int a=10;
System.out.println(3>4 && ++a);   //输出false
System.out.println(a);   //输出10    由于3不大于4,所以++a并没有被执行。
10.三元运算符

三元运算符格式:

数据类型 变量名 = 布尔类型表达式?结果1:结果2

三元运算符计算方式:

  • 布尔类型表达式结果是true,三元运算符整体结果为结果1,赋值给变量。
  • 布尔类型表达式结果是false,三元运算符整体结果为结果2,赋值给变量。

一元,二元,三元运算怎么区分。

  • 一元运算符:只需要一个数据就可以进行操作的运算符。++ – !
  • 二元运算符:需要两个数据才能进行操作的运算符。赋值= 加法+
  • 三元运算符:需要三个数据。
//使用三元运算符计算最大值
int a=20;
int b=10;
int max=a > b : a ? b //判断a是否大于b,如果成立,取a,否则取b;

注意事项
表达式a和表达式b都必须符合左侧的数据标准

11.方法

概述:我们在学习运算符的时候,都为每个运算符单独的创建一个新的类和main方法,我们会发现这样编写代码非常的繁琐,而且 重复的代码过多。能否避免这些重复的代码呢,就需要使用方法来实现
方法:就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。 当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象。
方法的定义

  • 定义格式:
修饰符 返回值类型 方法名 (参数列表){ 
	代码... 
	return ; 
}
  • 定义格式解释:
    1.修饰符: 目前固定写法 public static 。
    2.返回值类型: 目前固定写法 void
    3.方法名:为我们定义的方法起名,满足标识符的规范(小驼峰式),用来调用方法。
    4.参数列表: 小括号内的参数。
    5.return:方法结束。因为返回值类型是void,方法大括号内的return可以不写。
// 举例
public static void methodName() { 
	System.out.println("这是一个方法"); 
}

方法的调用
方法在定义完毕后,方法不会自己运行,必须被调用才能执行,我们可以在主方法main中来调用我们自己定义好的方法。在 主方法中,直接写要调用的方法名字就可以调用了。

public static void main(String[] args) { 
//调用定义的方法
	method method(); 
}
//定义方法,被main方法调用 
public static void method() { 
	System.out.println("自己定义的方法,需要被main调用运行");
}

注意事项

  • 方法必须定义在一类中方法外
  • 方法不能定义在另一个方法的里面
public class Demo {
 	public static void main(String[] args){
 	 }
	//正确写法,类中,main方法外面可以定义方法 
	public static void method(){
	} 
}
public class Demo { 
	public static void main(String[] args){ 
	//错误写法,一个方法不能定义在另一方法内部 
		public static void method(){
		}
	} 
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值