第二周学习记录

                                 201711671112  《Java程序设计》第二周学习总结 

教材学习内容总结

1、用来标识类名、变量名、方法名、类型名、数组名及文件名的有效字符序列为标识符;标识符是一个名字

2、标识符由字母、下画线、美元符号和数字组成,第一个字符不能是数字字符,不能是关键字,不能是true、falsenull,字母区分大小写;关键字就是具有特定用途或被赋予特定意义的一些单词byte、char、short、return、do、double....  

3、Java8种基本数据类型   

逻辑型boolean、 常量为true,false,声明时可以赋初值

整数型byte(分配1个字节内存,占8位)short(分配2个字节内存,占16位)int(分配4个字节内存占32位)、long(常量用后缀L来表示,分配8个字节内存,占64位)

浮点型float(小数点表示法231.0f、指数表示法2e40f :2乘10的40次方,必须有f或F,保留8位小数,分配4个字节内存,占32位)、double指数表示法1e-90:1乘10的-90次方,保留16位小数,分配8个字节内存,占64位,后缀d或D可有可无)

字符型char(分配2个字节内存,占16位)   转义字符常量  \n换行、\b退格、\‘单引号,可以用字符在Unicode表中的排序位置的十六进制转义(需要用u做前缀) '\u0041'表示字符A,'\u0061'表示字符a

分别用类型转换来显示一些字符在Unicode表中的位置,以及表中某些位置的字符

public class Example2_1 {

	public static void main(String[] args) {
		char you='\u4F60';
        int position=20320;
        System.out.println(position+"位置上的字符:"+(char)position);
        position=21319;
        System.out.println(position+"位置上的字符:"+(char)position);
        System.out.println("you:"+you);
	}

}

4、按精度从低到高排列    byte、short、char、int、long、float、double

①当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换;

②当把级别高的变量的值赋给级别低的变量时,必须使用类型转换运算 (类型名)要转换的值;  int x=(int)34.89【输出34】; long y=(long)56.98F;

③  byte a=(byte)128;

     byte b=(byte)(-129);   得到a、b值为-128,129

类型转换

public class Example2_2 {

	public static void main(String[] args) {
		byte b=22;
		int n=129;
		float f=123456.6789f;
		double d=123456789.123456789;
		System.out.println("b= "+b);
		System.out.println("n= "+n);
		System.out.println("f= "+f);
		System.out.println("d= "+d);
		b=(byte)n;   //导致精度的损失
		f=(float)d;  //导致精度的损失
		System.out.println("b= "+b);
		System.out.println("f= "+f);
	}

}

5、可以使用Scanner类创建一个对象  Scanner reader=new Scanner(System.in);

计算出和

public class Example2_3 {

	public static void main(String[] args) {
		//请输入若干个数,每输入一个数回车确认
		//最后输入数字0结束输入操作
		Scanner reader=new Scanner(System.in);
		double sum=0;
		double x=reader.nextDouble();
		while(x!=0) {
			sum=sum+x;
			x=reader.nextDouble();
		}
		System.out.println("sum= "+sum);
	}

}

6、System.out.println()或者System.out.print()可以输出串值、表达式的值,区别是前者输出数据后换行,后者不换行

System.out.println(m+“个数的和为”+sum);+:字符串的连接

%d:输出int类型数据  %c:输出char数据  %f:输出浮点型数据,小数部分最多六位

%s:输出字符串数据     %m.nf:输出的浮点型数据占m列,小数点保留n位

7、数组是相同类型的变量按顺序组成的一种复合数据类型,创建数组需要经过声明数组为数组分配变量两个步骤(可同时完成)

声明数组:一维 float boy[ ] /float [ ] boy    二维 char cat[ ]/ char [ ]cat

可以一次声明多个数组 int [ ] a,b  等价于int a[ ],b[ ]  声明了两个一维数组;

int [ ]  a ,  b[   ]   等价于int  a[  ],b[  ] [   ] 声明一个int一维数组和一个int 二维数组 

为数组分配变量

数组名=new 数组元素的类型名[ 数组元素的个数 ]  ;boy=new float [ 4 ];

数组属于引用型变量,数组变量中存放着数组的首元素地址,通过数组变量的名字加索引使用数组元素 boy[0]=12

8、数组元素的个数为数组的长度。对于一维 “数组名.length”的值就是数组中元素的个数,二维数组的“数组名.length”为他含有的一维数组的个数。

9、创建数组后,系统会给数组的每个元素一个默认值,在声明数组的同时也可以给数组的元素一个初始值(但是得为每个元素都赋值)

10、数组属于引用型变量。因此两个相同类型的数组如果具有相同的引用,他们就有完全相同的元素

判断用户输入的一个整数是否在已知的数组中(折半法)

import java.util.Scanner;

public class Example2_5 {

	public static void main(String[] args) {
		int start=0,end,middle;
		int a[]= {12,45,67,89,123,-45,67};
		int N=a.length;
		for(int i=0;i<N;i++)
			for(int j=i+1;j<N;j++) {
				if(a[j]<a[i]) {
					int t=a[j];
					a[j]=a[i];
					a[i]=t;
				}
			}
	    }
	Scanner scanner=new Scanner(System.in);
	System.out.println("输入整数,程序判断该整数是否在数组中:");
	int number=scanner.nextInt();
	int count=0;
	end=N;
	middle=(start+end)/2;
	while(number!=a [middle]) {
		if(number>a [middle])
			start=middle;
		else if(number<a[middle])
			end=middle;
	}
}

代码调试中的问题和解决过程

不熟悉java的调试过程,多试几次就记得了。

其他感悟

多调试程序,多打代码,才会上手。

参考资料

《Java2实用教程(第五版)》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值