栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础知识

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础知识

1. 变量

数据类型:Java是一种强类型编程语言

生命周期:有效范围。Java提供了垃圾回收机制

Java中的数据类型可以分为两大类型:基本类型【原生】和应用类型【复杂】

1.1基本类型

4型8种:

(1)整型:byte【1字节】、short【2字节】、int【4字节】、long【8字节】

         4种不同的表示方式:十进制、八进制【0开头】、十六进制【0x开头】、二进制【0b开头】

(2)浮点数:folat【4字节】、double【8字节】

        在Java中浮点数无法精确存放,除非使用Java提供的BigDecimal。

不允许使用“==”判断,应该使用Math.abs(a-b)

(3)字符类型:char  【char c ='中'】;注意是单引号

 Java中字符采用的是Unicode编码字符集,2B,对应整数为0-65535。

Java中提供了转意字符,以反斜杠开头:

(1)ddd:1-3位的8进制数对应的字符

(2)uxxxx: 1-4位的16进制数对应的字符

(3)': 表示单引号,注意不允许' ' '

(4)": 表示双引号

(5)\:表示反斜杠字符

注意:'0'<'A'<'a'

(4)布尔类型:boolean

只有两个数值:true 表示真、false表示假

在Java中整型数据和Boolean值之间没有转换关系

常见的数学计算:

Java提供了一个Math类,其中包含了基本运算的属性和方法。

public class Test1 {
	public static void main(String[] args) {
		double kk=144;
		System.out.println(Math.sqrt(kk));
		double dd = 144.d;
		System.out.println(Math.sqrt(dd));// 开平方
		int k1 = 12;
		System.out.println(Math.pow(k1, 2));// 计算k1的2次方
		System.out.println(Math.pow(dd, 0.5));
		k1 = -123;
		System.out.println(Math.abs(k1)); // 绝对值
		System.out.println(Math.max(dd, k1));//获取2个数值之间较大的数字
		System.out.println(Math.min(dd, k1));// 获取2个数值之间较小的数字

		// 浮点数转整数型
		dd = 3.45;
		System.out.println(Math.ceil(dd)); // 天花板
		System.out.println(Math.floor(dd)); // 地板

		dd = -3.45;
		System.out.println(Math.ceil(dd));
		System.out.println(Math.floor(dd));

		// 四舍五入,注意考核中的坑在于负数的处理
		dd = -3.45;
		System.out.println(Math.round(dd)); // -3
		dd = -3.56;
		System.out.println(Math.round(dd));// -4

		// 随机数
		System.out.println(Math.random()); // 0.7683377459693336 
	}
}

除了简单计算外,还有指数、对数、三角和三角函数等方法的封装。

1.2基本类型的转换

小转大自动转,大转小需强转(窄化操作)

强制类型转换语法:(目标类型)变量

注意:Boolean类型和数值类型之间没有任何对应关系,所以进行强制类型转换会报语法错误。

浮点数的特殊处理:针对浮点数系统默认的是double类型,所以123.456会识别为double类型,但是变量声明为float型。所以需要进行数据类型转换或者进行特殊声明。

1.3复合数据类型

复合数据类型包括:类class、接口interface、数组

特殊值null,在运行是并没有对应的类型,但它可以被转换成任何复杂类型,表示没有存储数据,但是不能赋值给简单类型。

复合类型的默认值就是null空指针。

2.常量

常量就是指在程序执行的期间其值不能发生变化的数据。

final double PI = 3.1415;
PI=PI+1;//语法报错是因为final表示PI是常量,不允许更改

3.表达式

表达式就是运算符、操作数以及方法的调用序列,用来说明某个计算过程并返回计算结果。

基本运算符可以分为:

(1)算数运算符:+ - * / % ++ --

例子:将一个任意正整数进行反转,如果数值越界则返回-1                                              

public class Test3 {
	public static void main(String[] args) {
		int k =20487458;
		long res =0;
		while(k>0) {
			int p =k%10;
			k=k/10;
			res=res*10+p;
			if(res>Integer.MAX_VALUE) {
				res=-1;
				break;//立即终止循环的执行
			}
		}
		System.out.println(res);
	}
}

(2)关系运算符:>  >=  <  <= ==等值  !=不等于

注意:==和=的区别

k=100;这是一个赋值计算,就是将=右边的计算结果赋值给=左边的变量

k==100;这是比较计算,判断k是否值为100,如果是返回true,否则flase.

(3)逻辑运算符:&&与运算(且),||或运算(或),!非运算(不是)【重点在计算过程中支持短路操作】

(4)位运算符:&与   |或  ^异或  ~按位取反  <<左移位  >>右移位    >>> 【基本不做要求,不支持短路操作】

(5)赋值运算符:=  +=  -=  *=  /=   %=

(6)三目运算符:(表达式1?表达式2:表达式3)

4.结构化编程

流程图是流经一个系统的信息流、观点流或部件流的图形代表。

流程图一般由由圆角矩形、矩形、菱形、平行四边形、箭头组成。流程图一般都是用圆角矩形来表示“开始”与“结束”,用矩形表示行动方案、普通工作环节,菱形表示判断,平行四边形表示输入输出,箭头表示工作流方向。

任何复杂的问题都可以使用三种基本算法结构来描述:顺序、选择和循环。

4.1条件分支语句

Java提供了两种判断语句if和Switch,这两种用于是实现条件判断,当符合某些条件时执行某段代码,否则不执行。

if结构

if(条件判断语句){
    代码段1;
}else{
    代码段2;
}

例子:

import java.util.Scanner;
public class Test4 {
	public static void main(String[] args) {
//		Scanner sc=new Scanner(System.in);
//		boolean bb=sc.nextBoolean();
//	    if(bb==false) {
//			System.out.println("性别为女!");
//	    }
		
		Scanner sc=new Scanner(System.in);
		int score=sc.nextInt();
		if(score>=80)						//当大括号里面只有一句语句时,可以省略大括号
			System.out.println("成绩优秀");
		else if(score>=70) 
			System.out.println("成绩良好");
		else if(score>=60) {
			System.out.println("成绩合格");
		}else {
			System.out.println("成绩不合格!");
		}
	}
}

Switch结构

switch(表达式){
    case 值1:
        代码段1;
    break;
    case 值2:
        代码段2;
    break;
    ......
    default:   //当所有case都不成立时,则执行代码段n
        代码段n;[break;]
}

例子:

import java.util.Scanner;
public class Testnian {
	public static void main(String[] args) {
		System.out.println("请输入月份:");
		Scanner sc= new Scanner(System.in);
		int month =sc.nextInt();
		switch(month){
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				System.out.println("本月有31天");
				break;
			case 2:
				System.out.println("请输入年份:");
				int year=sc.nextInt();
				if((year%4 == 0 && year%100 != 0)||(year%400 == 0)) {
					System.out.println("本月有29天");
				}else {
					System.out.println("本月有28天");
				}break;
			case 4:
			case 6:
			case 9:
			case 11:
				System.out.println("本月有30天");
				break;
			default:
				System.out.println("月份输入错误");
				break;
		}
	}
}

4.2循环结构

在Java程序中,循环控制就是某一个条件下,控制程序重复执行某一段代码,直到遇到终止条件为止。

循环语句也称为迭代语句,有while、for和do...while三种循环语句。

4.2.1while循环

while(条件){执行语句;}当条件成立时反复执行语句,直到条件不成立为止。

public class leijiaqi {
public static void main(String[] args) {
	int res =0;
	int k=0;
	while(k++<100) {
		res+=k;
	}
	System.out.println("1+2+3+...+100="+res);
  }
}

注意:break和continue的用法

break:立即终止循环,进入循环结构的后续代码继续执行,循环体执行结束。

continue:终止本次循环,进入下一次循环,循环并没有结束

4.2.2for循环

for(表达式1;表达式2;表达式3){循环体;}

基本执行流程:1、执行表达式1。2、执行表达式2,一般表达式2是一个条件判断,如果值为true则执行循环体,否则终止循环体的执行。3、执行完循环体后执行表达式3。4、再次执行表达式2以判断是否执行循环体。在整个循环的执行过程中表达式1执行且只执行一次。

int res=0;
for(int k=1;k<=100;k++){
    ers+=k;
} 
System.out.println(res);

4.2.3do...while循环

do{循环体;}while(条件)

先执行循环体,然后进行条件判断,如果条件为true,则执行下次循环;如果条件为false则终止循环。不同于while循环的特征: dolwhile循环至少需要执行循环体一次;而while循环有可能一次都不执行循环体。

int res=0;
int k=1;
do{
    res+=k++;
}while(k<=100)
System.out.println(res);

实际上三种循环可以相互替代。
(1)for循环一般用于可以明确循环次数的场景中
(2)while循环一般用于不能明确知道执行次数的场景中
(3)do/while循环一般用于不能预先明确循环次数,但是同时要求循环体至少执行一次的场景中

5.系统预定义类

Java 5 添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序。

nextInt()只读取int值,就是只能读取整数类型的数据,如果输入了非整型的数据(浮点型字符串等)就会报错。nextFloat、nextDouble这些也是以此类推,只能读取符合该类型的数据。

注意在class类定义的上方应该添加import java.uti1.scanner;

import java.util.Scanner;
public class Testnian {
	public static void main(String[] args) {
		System.out.println("请输入月份:");
		Scanner sc= new Scanner(System.in);
		int month =sc.nextInt();
	}
    System.out.println();
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/423954.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号