Java总结(1)

本文详细介绍了Java中的基本数据类型(整型、浮点型、字符型、布尔型),引用数据类型,以及如何使用和转换这些类型。此外,还涵盖了变量声明、运算符分类、运算顺序、流程控制结构(如顺序、分支、循环)和方法的作用。对于编程初学者,这篇文章提供了全面的基础知识指南。
摘要由CSDN通过智能技术生成

2.分类

基本数据类型

数值型

整数型(Byte;Short;Int;Long)

浮点型(Float;Double)

字符型(char)

布尔型(boolean)

引用数据类型

类,数组,接口。

Java中共11种数据类型,其中8种基本类型,3种引用类型

3.类型使用

3.1整型

Java语言整数型默认为int类型,如果要声明成long类型在变量值后加入L,如:long l = 123L

类型占用存储空间字节数数值范围
byte1-128~127
short2-2的15次方2的15次方-1(-3276832767)
int4-2的31次方~2的31次方-1
long8-2的63次方~2的63次方-1
Java整型常量的三种表示方法

十进制:如123=1*100+2*10+3*1=123 
八进制,八进制0开头:如:013=1*8+3*1=11 
十六进制,十六进制0x开头:如:0x23=2*16+3*1=35

3.2浮点型

浮点声明默认是double类型,若要是float,请在尾部添加f或是F。如:float myFloat=1.23

类型占用存储空间字节数数值范围
float4-3.4E38 ~ 3.4E38
double8-1.7E308~ 1.7E308
两种表示形式 十进制形式:例如:123.456 0.314  科学计数法
3.3布尔型

适用于逻辑运算,用于程序流程控制

只允许取值为true,false,不可以任何其它形式代替

3.4字符型

占用字节数是16bit,但是范围是0-65535,因为没有负数。

通常意义上的字符,用单个引号括起来的单个字符

如’1’,‘a’,'b’等等

转义字符,用’\n’来表示,即为转变之前的意义,但依然是个字符 
char c=‘\n’; //表示换行符

4.类型转换

8种基本类型中,除了boolean布尔型,其他7种类型,都可以进行转换

精度由低到高可以自动转换

精度由高到低需要强制转换

自动类型转换:byte>>short>>int>>long>>float>>double

char>>int>>long>>float>>double

强制类型转换:规则:  低精度类型   名字 = (低精度类型)高精度类型数据

三.变量

1.常量

生命周期中,可以复用,但值不可修改

一般会使用final修饰

2.字面量:

也是常量的一种,不能复用,不能修改。

3.变量

在生命周期中,值是可以修改的。

3.1变量声明

a.数据类型  变量名; 只创建变量,但不赋值

int a;

b.数据类型 变量名 = 值;创建变量并赋值

int b = 2;

c.数据类型 变量名 ,变量名, …;同时声明多个变量

int a,b,c;

d.数据类型 变量名=值,变量名=值,…;同时声明多个变量并赋值

int a=1,b=2,c=3;

同作用域中,变量名不能重复;一个{}就是一个作用域

注意 不能先使用后申明

3.2变量分类

局部变量:在方法中创建的变量,是局部变量(main{})

静态变量:在类体中,使用static修饰的变量,是静态变量(类名{})

成员变量:在类体中,没有使用static的变量是成员变量

public class Var_1{
 //成员变量
  int a = 1;
 //静态变量
  static int b =2;
  public static void main(String[] args){
   //局部变量
    int c = 3;
  }
}
3.3变量调用优先级
public class text3 {
    static int a =1;
	public static void main(String[] args) {
      //如果静态变量和局部变量同名,则局部变量优先级高
     int a =9;
      //此时访问的是局部变量 9
     System.out.println(a);
      //访问静态变量应加上类名
     System.out.println(text3.a);
}
}
3.4默认值
public class Var_05 {
	// 静态变量和成员变量都有默认值
	// 整数 默认0 , 小数默认 0.0  , 布尔型默认 false , 
	// 字符型默认 \u0000 , 引用类型默认 null
	static int a ;
	static double b;
	static boolean flag ;
	static char c;
	public static void main(String[] args) {
		// 局部变量没有默认值,不赋值,不能使用
		// int a;
		// System.out.println(a);
		System.out.println(a);
		System.out.println(b);
		System.out.println(flag);
		System.out.println(c);
	}
}

四.运算符

释义 
用于表示数据的运算、赋值和比较的一系列符号我们称之为运算符。

分类 
运算符按功能划分如下:

运算符类型运算符
算术运算符+,-,*,/,++,–,%
关系运算符<,<=,>,>=,==,!=
布尔/逻辑运算符&&,
位运算符&,
赋值类运算符=, +=, -=, *=, /=, %=
字符串连接运算符+
条件运算符(三目运算符)? :
其他运算符instanceof,new

1.1算术运算符

类型描述示例
++(自加运算符)++在变量前面时,先做运算后赋值++在变量后面时,先做赋值后运算i = 1, j; j = ++i; 则j=2;i = 1, j; j = i++; 则 j = 1
–(自减运算符)同上i = 1, j; j = - -i; 则 j = 0;i = 1, j; j = i- -; 则 j = 1;
public class Operator_01 {
	public static void main(String[] args) {
		int a = 10;
		int b = 3;
		// 13
		System.out.println(a + b);
		// 7
		System.out.println(a - b);
		// 30
		System.out.println(a * b);
		// 3
		System.out.println(a / b);
		// 1
		System.out.println(a % b);
		// 3.3333333333333335
		System.out.println(10.0 / 3.0);
		// 千万不要使用小数 进行相等判断
		// 0.30000000000000004
		System.out.println(0.1 + 0.2);

		// ++ : 一元运算,优先级是大于二元的
		// ++ : 把原来的数据+1,在放回去
		int i = 10;
		// 当i++ 或 ++i 单独出现的时候,没有啥区别,都是直接+1 就行了
		// i++;
		// ++i;

		// 当参与混合运算的时候, i++ 先赋值 后+1 , ++i 先+1 后赋值
		// i = i++ + 2;
		// i = ++i + 2;

		// i = i++ +i;
		i = i++ + 5 + ++i + i;
		// i = 10 + 5 + 12 + 12; i = 12;
		System.out.println(i);

		int x = 10;
		x = 10 + x++ + ++x + (10 * x++) + ++x + x;
		// x = 10 + 10 + 12 + (10 * 12) + 14 + 14; x = 14
		// x = 166 + 14; x = 14
		System.out.println(x);
	}
}

1.2关系运算符

注意 ‘==’关系运算,其意义为全等,基本数据类型比较值,引用数据类型比较地址

关系运算符结果一定是布尔类型 true/false

1.3逻辑运算符

与 &:两个操作数相与,如果都为true,则为true

或 |:两个操作数相或,有一个为true,则为true

异或 ^:相异为true,两个操作数不一样就为true,相同为false

短路&& 和 逻辑& 区别?

1.短路与,从第一个操作数推断结果,只要有一个为fase,不再计算第二个操作数

2.逻辑与,两个操作数都计算

短路|| 和 逻辑| 区别?

1.短路或,从第一个操作数推断结果,只要有一个为true,不再计算第二个操作数

2.逻辑或,两个操作数都计算

1.4赋值运算符

1)当 “=” 两侧数据类型不一致时,适用默认转换或强制转换处理,如long num=20;int i=(int)num; 
2)特殊情况为:当byte,char,short被整赋值时,不需要进行强制类型转换,不超过取值范围即可。即一个自动装载的过程。
char c=100;byte b=20; //正确

char c2=-99999;byte b2=128; //类型越界错误

运算符用法c
+=a+=ba=a+b
-=a-=ba=a-b
*=a*=ba=a*b
/=a/=ba=a/b
%=a%=ba=a%b

1.5字符串连接运算符

  1. “+” 可用于数值计算,当有一方是字符时,则为将左右两个数据转化成字符串连在一起。如int i=10+20;String j=“10”+“20”。
  2. 当" +" 任意一侧为字符串时,系统将自动将两侧转化成字符串,做字符串链接操作。
  3. 当进行System.out.println(var)打印操作的时候,均自动转化为字符串进行输出。

1.6运算优先级

优先级运算符分类结合顺序运算符
由高到低分隔符左结合. [] ( ) ; ,
一元运算符右结合! ++ – - ~
算术运算符移位运算符左结合* / % + - << >> >>>
关系运算符左结合< > <= >= instanceof == !=
逻辑运算符左结合! &&
三目运算符右结合布尔表达式?表达式1:表达式2
赋值运算符右结合= *= /= %= += -= <<= >>= >>>= &= *=

1.7混合运算

public class Operator_02 {
	public static void main(String[] args) {
		// 当一个计算公式中 ,出现了很多种数据类型的时候
		// 运算结果,是参与运算的最大数据类型
		// 比如 byte int float 进行运算 , 结果是 float类型
		byte b1 = 22;
		int i1 = 223;
		long l1 = 23;
		float f1 = 22.6F;
		float result = l1 + i1 + b1 + f1;

		// 如果只有 byte short int char 四种类型中,任意一种或多种进行运算
		// 结果都是int类型
		int s = b1 + b1;
	}
}

五.表达式

表达式是指由(常量、变量、操作数)与运算符所组合而成的语句。

  1. 符合语法规则的运算符+操作数,即为表达式,如:5+3,2.0+3.0,a+b,3%2
  2. 表达式最终运行结果即为表达式的值,值的类型就是表达式的类型
  3. 运算符优先级,决定表达式的运算顺序

六.流程控制结构

1.顺序结构

顺序结构程序就是按语句出现的先后顺序执行的程序结构。计算机按顺序逐条执行语句,当一条语句执行完毕,自动转到下一条语句。

2.分支结构

1)分支结构又称为选择结构。当程序执行到控制分支语句时,首先判断条件,根据条件表达式的值选择相应的语句执行(放弃另一部分语句的执行)。

2)分支结构包括单分支、双分支和多分支三种形式。

2.1单分支

if(布尔表达式){语句块;}

2.2双分支

if(布尔表达式){ 
    语句块;//if分支 
}else{ 
    语句块;//else分支 
}

2.3多分支-1

if(布尔表达式){ 
    语句块; 
}else if(布尔表达式){ 
    语句块; 
}else{ 
    语句块; 
}

2.4多分支-2

switch (表达式) {

case 值1:

语句;

break;

case 值2:

语句;

break;

default:

语句;

break;

}

注意:如果分支没有break终止,则找到符合的条件时,会把下面所有的case分支都执行

3.循环结构

3.1while语句

while(布尔表达式){ 
循环体; //一条或多条语句 
}

【示例】 
int i = 1; 
while(i<=5) { 
  System.out.println(i); 
  i++; 
}

3.2do…while语句

do { 
  循环体; 
}while(条件判断表达式);

【示例】 
int i = 1; 
do{ 
  System.out.println(i); 
  i++; 
}while(i<=0); //注意分号

3.3for语句

for(表达式1;表达式2;表达式3) { 
  循环体; //一条或多条语句 
}

【示例】 
for (int i=1; i<=5; i++) { 
  System.out.println(i); 
}

3.4嵌套循环

循环中还有循环;外层执行一次,内层执行一轮

例:1.九九乘法表

for (int i = 1; i < 10; i++) {
			for (int j = 1; j <= i; j++) {
				// 没有ln 就不会换行了
				System.out.print(j+"x"+i+"="+(j*i) + " ");
			}
			// 换行
			System.out.println();
		}

例:2.鸡兔同笼

		for (int x = 1; x < 35; x++) {
			int y = 35 - x;
			if (2 * x + 4 * y == 94) {
				System.out.println("鸡有" + x + "只,兔子有" + y + "只");
			}
		}
4.终止语句
4.1break

两种用法

用在switch中,用于结束case分支,防止case穿透现象

用在循环中,用于终止循环执行

public class _01_Break {
	public static void main(String[] args) {
		for (int i = 0; i < 100; i++) {
			if (i == 59) {
				// 终止循环执行
				// 场景一:在一堆数据中找某个数据,找到之后,就不需要再看剩下的数据了
				System.out.println("找到啦");
				break;
			}
			System.out.println(i);
		}
	}
}

4.2continue

跳过当前循环,相当于不执行了,直接执行i++

public class _02_Continue {
	public static void main(String[] args) {
		for (int i = 1; i < 100; i++) {
			// 场景1 : 在一堆数据中进行筛选,不符合条件的数据就不要了
			// 比如 1~100内 不要能被3整除的数据
			if (i % 3 == 0) {
				System.out.println("不要 : "+i);
				continue;
			}
			System.out.println(i);
		}
	}
}
4.3outfor
public class _03_OutFor {
	public static void main(String[] args) {
		// 对外层循环设置一个名字
		outFor: for (int i = 0; i < 6; i++) {
			for (int j = 0; j < 4; j++) {
				if (j == 2) {
                    // break 终止循环执行,但是在嵌套循环中,只能终止近层循环
                    // continue 跳过当前次循环,但是在嵌套循环中,只能跳过近层
					// 使用的时候,只需要在后面加上名字 即可操作外层循环
					// break outFor;
					continue outFor;
				}
				System.out.print(j + "  ");
			}
			System.out.println();
		}
	}
}

七.方法

1.概述:

一堆代码的集合,一般完成了某个特定的功能,

当我们再次使用这个方法的时候,就等于使用了这些代码。

方法的目的:代码复用;提高程序的灵活度;易维护;易扩展

2.方法的作用:

  1. 使程序变得更简短更清晰
  2. 有利于程序维护
  3. 提高程序开发效率
  4. 提高代码重用性

3.方法声明

3.1语法格式:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

[外链图片转存中…(img-YNfkFNI4-1712477428631)]

[外链图片转存中…(img-MWuQZ6qU-1712477428632)]

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

img
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值