Java基础(一)

Java基础(一)

1. 数据类型与变量

1.1数据类型
  • 基本数据类型:整型、浮点型、字符、布尔
  • 引用数据类型:类、数组、接口、枚举、标注
数据类型关键字存储字节取值范围
字节型byte1 字节-128~127
短整型short2 字节-32768~32767
整型int(默认)4 字节-2^31 ~ 2^31-1
长整型long8 字节-2^63 ~ 2^63-1
单精度浮点数float4 字节有效位6~7位
双精度浮点数double(默认)8 字节有效位15位
字符型char2字节0~65535
布尔类型boolean1 字节true、false
注意:
  • 长整型数值有一个后缀L或l,建议用L
  • float类型的数值有一个后缀F获f,没有后缀的浮点数值默认为double类型
  • 强烈建议不要在程序中使用char类型
1.2. 变量
  • 变量名必须是一个以字母开头,并由字母或数字构成的序列。
  • 变量名中的所有字符都是有意义的,大小写敏感
  • 常量:关键字final表示这个变量只能被赋值一次,赋值后无法更改。常量名使用一般全大写
  • 变量声明时需初始化,不初始化可能会出问题
  • 变量名不可重复声明
1.3 数值类型转换

在这里插入图片描述

  • 上图中6个实线箭头表示无信息丢失的转换,3个虚箭头表示可能有精度损失的类型转换。

  • 数值在进行计算时,先要将两个操作数转换为同一种类型,然后进行计算。

2. 运算符

2.1 算术计算符
 +-*/%(取余);+=-=(赋值运算符)
 --++(自减/增)
        int i = 2;
        int i1 = i++;
        System.out.println(i);//3
        System.out.println(i1);//2
        int b = 2;
        int i2 = ++b;
        System.out.println(b);//3
        System.out.println(i2);//3
2.2关系运算符
	==; !=; >; <; >=; <=
	&&; ||; 
	//三目运算符?:
	condition ? expression1 : expression2 
	
注意

&&和||是按照短路方式来求值的(如果第一个操作书已经能够确定表达式的值,第二个操作数就不必计算了)

2.3位运算符
	&(and) ; |(or) ; ^(xor) ; ~(not)
	>>(左移/除二)<<(右移/乘二)>>>(逻辑右移)

3. 控制流程

3.1条件语句
	1.if
	2.if	else
	3.if	elseif	else
3.2循环
  • while(condition) statement
    用于不确定次数的循环

  • do(statement) while(condition);

    循环体至少执行一次。先执行语句,在检测循环条件

  • for循环
    用于确定次数的循环

  • 多重选择 switch语句

switch (choice)
{
    case 1:
    	break;
    case 2:
    	break;
    case 3:
    	break;
    case 4:
    	break;
    default:
    // bad input
    	break;
}

####### 注意:

  1. 有可能触发多个case分支。如果case分支语句的末尾没有break语句,就会接着执行下一个case分支语句。这样会引发错误。因此,在程序中减少甚至是不使用switch语句。
  2. case标签可以为char,byte,short,int,枚举,字符串(java7)
3.3中断控制流程语句
  1. break
  • 跳出当前循环
  • 可以使用标签,标签必须放在希望跳出的最外层循环之前,并且紧跟一个冒号:
  1. continue
  • 将控制转移到最内层循环的首部
  • 可以使用标签

####### 注意:
break和continue容易混淆,且是可选的,即不适用它们也可以表达相同的逻辑含义。

4.数组

4.1概念

数组是一种数据结构,用来存储同一类型值的集合。通过一个整型下标可以访问数组中的每一个值。

4.2数组的定义
  • 方式一
	//数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];
	int[] arr = new int[3];
  • 方式二
	//数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};
	int[] arr = new int[]{1,2,3,4,5};
  • 方式三
	//数据类型[] 数组名 = {元素1,元素2,元素3...};
	int[] arr = {1,2,3,4,5};
4.3 数组的内存结构分析
  • 数组的拷贝机制
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MHnhriHE-1588041842522)(C:\Users\tangxu\AppData\Roaming\Typora\typora-user-images\1588040994761.png)]
4.4数组的优缺点
  • 可以通过下标(或索引)访问指定位置的元素,速度快
  • 数组的所有元素要求相同
  • 数组要求内存空间连续,并且长度一旦确定就不能更改
  • 增加和删除元素时可能移动大量元素,效率低
4.5数组工具类
/*
1.static int binarySearch(int[] a, int key) 
          使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。  
2.static boolean equals(int[] a, int[] a2) 
          如果两个指定的 int 型数组彼此相等,则返回 true。
3.static void fill(int[] a, int val) 
          将指定的 int 值分配给指定 int 型数组的每个元素。 
4.static void sort(long[] a) 
          对指定的 long 型数组按数字升序进行排序。
5.static String toString(int[] a) 
          返回指定数组内容的字符串表示形式。 
*/
4.6二维数组
  • 概念:二维数组本质上就是由多个一维数组堆在一起组成的数组,二维数组中的每一行都是一个一维数组。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值