java的基础程序设计结构

数据类型

整形:用于表示没有小数部分的数值,允许负数。
有4种整形

类型存储需求取值范围
int4字节-2147483648~214783647(超过20亿)
short2字节-32769~32767
long8字节-9223372036854775808~9223372036854775807
byte1字节-128~127

浮点类型:用于表示有小数部分的数值。
溢出和出错情况的三个特殊的浮点数值(一个正整数除以0结果为正无穷大,0/0或负数的平方根结果为NaN):

  • 正无穷大
  • 负无穷大
  • NaN
类型存储需求取值范围
float4字节±3.40282347E+38F(有效位数是6~7位)
double8字节±1.79769313486231570E+308(有效位数为15位)

char类型:单独的char类型应该只用于字符值的存储和使用;有符号和无符号的“char”型变量只能用于数值的存储和使用。

boolean类型:有两个值true和false,用来判定逻辑条件。

数值类型的转换:
数值类型之间的合法转换如下(实心箭头表示无信息丢失的转换,虚箭头表示可能有精度损失的转换)
在这里插入图片描述
必要的时候int类型的值会自动转换为double类型,但有时需要将double转换成int,就会用到强制类型转换,可能会丢失一些信息。

强制类型转换:在圆括号中给出想要转换的目标类型,后面紧跟待转换的变量名(如果强制后超出目标类型的范围就会截断成完全不同的值)
例:
double x = 9.997;
int nx = (int)x;

对浮点数进行舍入运算
double x = 9.997;
int nx = (int) Math.round(x);

变量与常量

变量:每个变量都有一个类型,变量名必须以字母开头并由字母或者数字构成的序列。
声明变量:声明变量之后必须用赋值语句对变量进行初始化。
int vacationDays;
vacationDays = 12;
double salary = 1.5;
boolean done;

常量:用final指示常量,只能被赋值一次,赋值后不能再改,习惯常量名全部用大写(类常量的定义位于main方法的外部,可以在同一个类的其他方法中使用这个常量)。
类常量实例:
public static final double CM_PER_INCH = 2.54;

运算符

算术运算符:+,-,*,/表示加、减、乘、除运算。参与/运算的两个操作数都是整数时,表示整数除法,否则表示浮点除法。整数的求余操作(取模操作)%。

运算符的使用:
x += 4; 等价于 x = x + 4;
自增自减 n++; n–;++n; --n;
检测等或不等 3 == 7或 3 != 7
有>、<、<=、>= 运算符
逻辑”与” && 和 逻辑”或” ||
x < y ? x : y\

位运算符:&(“and”) |(“or”) ^(“xor”) ~(“not”) 这些运算符按位模式处理,>>和<<将位模式左移或者右移,>>>会用0填充高位,没有<<<

运算符优先级

运算符结合性
[].() (方法调用)从左向右
! ~ ++ – + (一元运算)-(一元运算) ()(强制类型转换) new从右向左
* / %从左向右
+ -从左向右
<< >> >>>从左向右
< <= > >= instanceof从左向右
== !=从左向右
&从左向右
^从左向右
l从左向右
&&从左向右
ll从左向右
?:从右向左
= += -= *= /= %= &= l= ^= <<= >>= >>>=从右向左

字符串

从概念上来讲,java字符串就是Unicode字符序列。每个用双引号括起来的字符串都市String类的一个实例。(String类对象也称为不可变字符串,不能修改任何一个字符)
String e = “”’ //一个空串
String greeting = “Hello”; //定义字符串
String s = greeting.substring(0,3); //提取子串Hel
String e = “123”;
String message = greeting + e; //拼接字符串,结果为Hello123
String all = String.join("/" , “S” , “M” , “L” ,“XL”); //结果为S/M/L/XL
greeting = greeting.substring(0,3) + “p!”; //把greeting的值修改为"Help!"
s.equals(e); //检测两字符串是否相等
“Hel”.equals(s);
“Hello”.equalsIgnoreCase(“hello”); //不区分大小写检测是否相等
if(str != null && str.length() != 0) //检查一个字符串既不是null也不是空串

控制流程

条件语句:当条件为真时执行语句
if(condition) statement
if(condition) statement1 else statement2
if(condition){
statement1
}else if{
statement2
}else{
statement3
}

while循环:当条件为真时,循环执行语句,直到条件为假后才退出循环
while(condition) statement

先一次执行语句,再检测循环条件
do statement while(condition);

for循环:时支持迭代的一种通用结构,利用每次迭代之后更新的计数器或类似的变量来控制迭代次数。

for(初始化计数器;循环前要检测的循环条件;更新计数器){
statement
}

for each循环:以此处理数组(其他类型的元素集合)中的每个元素
for(variable : collection) statement

switch语句:处理多个选项时,选择if/else会很笨拙。可以用switch语句,其中case可以为char、byte、short、int的常量表达式、枚举常量、字符串字面量。
switch(choice){
case 1:

break;
case 2:

break;
default:
//bad input

break;
}

中断控制流程语句:在循环中的break可以推出当前循环,在嵌套循环中使用break也只是退出一个循环。使用break read_data; 可跳到循环外的read_data位置。continue语句中断正常的控制流程,将控制转移到最内层循环的首部。在for循环中则调到”更新”部分。

数组

数组是一种数据结构,用来存储同一类型值的集合。通过一个整形下标可以访问数组中的每一个值。
在声明数组变量时,要指出数组类型(数组元素类型紧跟[])和数组变量的名字。允许数组长度为0,数组长度为0和null不同,未初始化前不能使用。
int[] a = new int[100];
int[] a = {1,2,3,4,5};
int b[];
a.length(); //可以获取数组中的元素个数
Array.soft(a); //整形数组的排序,是快速排序算法

创建了数组后可以用循环赋值,创建数字数组时,所有元素都初始化为0,boolean数组的元素都会初始化为false,对象数组的元素会初始化为null。

初始化匿名数组
new int[] {1,2,3,4,5};

数组的拷贝:
将一个数组的所有值拷贝到新的数组中去
int n = Arrays.copyOf(a,a.length); //第一个参数是要拷贝的数组,第二个参数是新数组的长度

多维数组:使用多个下标访问数组元素,适用于表格或更加复杂的排列形式。
声明:int[][] magicSquare;
int[][] magicSquare = {{16,3,2,13},{5,10,11,8},{9,6,7,12},{4,15,14,1}}
快速打印二维数组的数据元素列表:System.out.println(Arrays.deepToString(a));

此文章内容来自java核心技术卷1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值