Java基础复习难点

第一节:Java的基本数据类型


一:按照数据类型来分类主要分为以下两种

基本数据类型:byte(一个字节)、short(两个字节)、int(4个字节)、long(8个字节)、float、double、 float、double、char(2字节)、boolean。

需要注意的三个点:①定义long型变量必须要以大写的L或小写的l结尾

                              ②定义float变量时要以f或F结尾。通常使用double型

                              ③ char c6 = '\u0043';//字符也可以通过Unicode编码进行表示

引用数据类型:class、interface、数组。


二:基本数据类型的运算规则

前提:去除boolean类型的运算。
          1.自动类型提升:当容量小的跟容量大的做运算时,结果自动提升为容量大的数据类型。

               例如: short s = 5;
                        //s = s-2;编译无法通过,因为此时等号右边自动类型转换为int型而变量s为   byte 型,所以编译无法通过

在此需要注意一点:++和*运算符不会改变原来的运算符

例一:byte b1 = 127;
           b1++;//此时b1仍为byte类型

例二:int i = 1;
        i *= 0.1;//不会改变原有数据类型,若是 i = i * 0.1则会报错。


         2.此时的容量大小,表示的是数的范围的大和小。
         3.   byte、char、short---》int--->long--->float---->double
         4.  特别的当byte、char、short三种类型做运算时结果为 int 类型

注意:  整形常量,默认类型以int型存储, 浮点型常量,默认类型为double型

例如:long cc1 = 123425364646464646l; // 后面如果不加l以int类型存储就会超出int的范围,进而报错

        float ff1 = 12.3f;//如果不加f相当于以double类型进行存储,而接受值的变量为ff1为float类型,  相当于容量大的往容量小的进行转化,所以要报错,


第二节:运算符的使用


1:逻辑运算符

①对于&&只要前面的条件为假,后面的条件就不执行了。对于&前面为假后面的条件也要执行。但是运算结果是相同的。 

②对于|和||,二者运算结果是相同的,当符号左边是false时,二者都会执行符号右边的运算,但当左边为true是|仍要执行两边但||不在执行右边的运算了。

2.位运算符

①<<:在一定的范围内,每向左移一位,相当于*2

②>>:在一定范围内,每向又移一位,相当于/2

③& (二进制运算符),化成二进制代码然后在进行运算。此时两边都是数值。

④三元运算符: (n1 > n2)? n1 : n2;//求n1与n2中的大值


第三节:流程控制


一:switch语句使用需要注意点

switch语句中除了boolean和浮点型 不能放其他都能放

public static void main(String[] args) {

		
		String season = "summer";
		switch(season) {//除了boolean和浮点型不能放其他都能放
		case "spring":  //case字后只能声明常量,不能声明范围。
			System.out.println("春暖花开");
			break;
		case "summer":
			System.out.println("夏日炎炎");
			break;
			default:  //default位置是任意的
				System.out.println("输入有误");
		}

二:从键盘获取不同类型的变量,需要使用Scanner类

public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);//实例化对象
		// int num = scan.nextInt();
		System.out.println("请输入你的姓名");
		String name = scan.next();  //调用Scanner的相关方法。
		System.out.println(name);
		 //System.out.println(num);
		
		System.out.println("请输入你的体重");
		double weight = scan.nextDouble();
		System.out.println(weight);
		
		//对于random huode区间[a,b]的随机数,Math.random()*(b-a+1) + a;

三:循环:必须要有循环退出的条件

例如:通过for循环来求10000以内的素数

public class PrimeNumber {
	public static void main(String [] args) {
		long start = System.currentTimeMillis();
		
	label:	for(int i = 2;i <=10000; i++) {
			//boolean isFlag = true;
			//通过取根号来优化,对本身是质数的自然数是有效的
			for(int j = 2; j <=Math.sqrt(i);j++) { //因为一个数总是可以分解为一个数乘以另外一个数
				//
				if(i % j == 0) {
					continue label;  //如果i不是质数,直接结束当前循环,开始下一次循环.
				/*	isFlag = false;
					break;//优化一:对本身非质数的自然数是有效的。*/
				}
			}
			System.out.println(i);
			/*
			if(isFlag == true) {
				System.out.println(i);
			}*/
			
			
		}
		long end = System.currentTimeMillis();
		System.out.println("程序运行的时间为:" + (end-start));
	}
		
		

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值