JAVA基础学习Day_02 - Go语言中文社区

JAVA基础学习Day_02


Java Day_02笔记

基本程序设计

(一)关键字和标识符

关键字(KeyWord): 在高级编程语言里 被赋予特殊含义的单词
标识符:标识符是为了标识程序中诸如类、方法和变量的元素而采用的命名。所有的标识符必须遵循以下规则:
1.标识符是由字母、数字、下划线(_)和美元符号($)构成的字符序列。
2.标识符必须以字母、下划线、或美元符号开头。
3.标识符不能是保留字。
4.标识符不能是true、flase或null。
5.标识符可以为任意长度。
6.严格区分大小写
起名规范:
1)变量名/函数名 :小驼峰式书写规范 即除第一个单词之外 其他单词首字母大写,如age myAge、doSomething
2)类名/接口名 :大驼峰式书写,即所有单词首字母大写 、如StudentName 、LoveYou
3)常量 所有字母大写 单词之间 加下划线如_MAX_VALUE MY_AGE
4)包名 所有字母小写 单词之间用. 如com.baidu.www
尽量不要使用单个字母 或者没有含义的字母组合当成一个名称

(二)注释和常量

注释:注解说明的文本 不属于代码 所以不会参与编译 更不会在字节码中出现
单行注释://+ 注释内容
多行注释:/ * +注释内容+ * /
文档注释:/ * *+ 注释内容+ */
注释可以相互嵌套 除了多行嵌套多行
常量:是指在程序中直接出现的数据->字面量
1.数字
整数 各种进制 在Java中 数字默认十进制 int
小数 直接小数 科学计数小数 double
2.布尔值
true和 false
3.字符
由一个符号被单引号’‘所包含的数据
如 ‘a’ 、‘12’ 、X 、’ ’
转义字符 t 、n 、a 、r
Unicode字符
字符集 ASCII、 Unicode、 gb2312 、GBK 、UTF-8
Windows默认字符集ANSI
数字0~9 编码为48~ 57、A~Z 编码 为65~ 90、a~z 编码为 97~122
4. 字符串
由若干个字符被双引号"“包括的数据,如"abc” 、“a” 、"" (空串)

(三)进制

计数方式 十进制 二进制 七进制 六十进制 二十四进制 三进制
十进制转其他进制:其他数%10直到商为0然后将余数倒写
其他数转十进制:从左到右本位上的数*基数的从左到右从零开始的幂。
十进制转二进制:找到十进制所在区间然后根据区间确定最大数,此为转为二进制的最高位然后减去这个数继续确定区间直到此数为零。
二进制转8和16进制:三位二进制代表一位8进制,四位二进制代表一位16进制 如1111转8进制17,转16进制F
非2的幂的进制转二进制必须转为10进制再转为二进制

(四)基本数据类型

整型:
byte— 占1个字节 取值范围:2^-7 ~2^7-1
short —占2个字节 取值范围:2^-15 ~2^15-1
int— 占4个字节 取值范围:2^-31 ~2^31-1
long —占8个字节 取值范围:2^-63 ~2^63-1
字符型:
char —占2个字节 取值范围:1 ~2^15-1
浮点型:
float —占4个字节 取值范围:2^-31 ~2^31-1
double —占8个字节 取值范围:2^-63 ~2^63-1
布尔型:
boolean —不确定(争论)true ,false
bit byte 1
JVM 1->4字节 int
定义变量
数据类型 变量名=常量;
数据类型转换
例:

public class ConstantDemo {
	public static void main(String[] args) {
		int i=3;
		int j=3;
		//10 常量 4字节 byte 1字节
		//自动类型转换
		byte b=10;//4->1 10并没有超过byte的取值范围
		/*	有效长度->有效值
			0000 0000 0000 0000 0000 0001 1000 1010
										  0000 1010
		 * */
		//强制类型转换 大->小
		b=(byte) 130;//Type mismatch: cannot convert from int to byte
		//Add cast to byte
		//Change type of b to int
		System.out.println(b);
		//1.两个变量相加 值可能会超过范围
		//2.两个变量相加为 int int不能直接转为更小的类型
		byte b1=120;
		byte b2=120;
		byte b3=(byte) (b1+b2);//Type mismatch: cannot convert from int to byte
		System.out.println(b3);
		short s1=123;
		short s2=456;
		short s3=(short) (s1+s2);
		//Java 整型是推荐 使用 int 
		int i1=Integer.MAX_VALUE;
		int i2=1;
		int i3=i1+i2;//第二种解释
		System.out.println(i3);
		//The literal 123123123123123123123 of type int is out of range 
		long l=1231231231231231231L;//L long
		char c=100;//ASCII值 编号
		System.out.println(c);
		c='a';
		System.out.println(c);
		c='a'+1;//4字节 int 98
		//1.先将'a'的编码和1相加 ->98 int
		//2.在将98赋给c 98<=65536
		System.out.println(c);
		System.out.println( (char)('a'+1) );//a1
		System.out.println( (char)600);
		float f=3.14F;//double
		double d=123123123123L;//D-double
		//1.强转 (float)3.14
		//2.3.14后加f
		float f1=3+3.14f;
		double d1=3+3.14;
//		int a=3+true;	
	}
}

(五).输入输出

Scanner对象
System.out.println();
例:

import java.util.Scanner;
public class ScannerDemo {
	public static void main(String[] args) {
		//如何从控制台输入数据 Scanner类
		//创建Scanner类的对象
		Scanner scanner=new Scanner(System.in);
		scanner.nextLine();
		scanner.next();
		scanner.nextInt();
		scanner.nextDouble();
	    scanner.nextByte();
		scanner.nextFloat();
    	scanner.nextLong();
		System.out.print("请输入一个数字:");
		//InputMismatchException
		int number=scanner.nextInt();//程序等待用户输入
		System.out.println(number);//Down掉 
		//代码可读性
		//程序的交互性 用户体验 相应的地方需要提示用户
		//程序的健壮性 不会因为用户的错误输入而导致程序终止 异常
		System.out.println(10/3.0);//误差 
		//取余运算 10/3=3 ~ 1 10%3=1
		//循环 奇偶判断
		//n%m 0~m-1
		//365 1-1 周一  1-20
		//1%7=1 周一 
		//%2 0 1
		//正负只看被除数
		System.out.println(-10%3);//-1
		System.out.println(10%-3);//1
		System.out.println(-10%-3);//-1
	}
}

(六)算数运算符

加 + ,减-, 乘 *, 除 / ,取余 %, 自加 ++, 自减 - -,加等 +=, 减等 -= ,乘等 *= ,除等 /= ,模等 %=,位与 & ,位或 | ,位异或 ^ ,位左移 <<, 位右移 >>
例:

public class OperationDemo {
	public static void main(String[] args) {
		/*	算数运算符 + - * / % ++ --
		 * 	赋值运算符
		 * 	+= -= /= *= %=
		 * 	位运算符
		 * 	& | ^ << >>
		 * 	比较运算符
		 * 	逻辑运算符
		 * */
		int a=3;
		a+=3;//a=a+3
		a=a+3;//int+int=int 就算超处范围 也会自动强制转换
		byte b=3;
		b+=3;//b=b+3;
//		b=b+3;//byte+int=int
		short s=3;
		s+=3;
//		s=s+3;//short+int=int
		// &
		int num1=10;
		int num2=7;
		System.out.println(num1&num2);//位与运算
		/*
		 	1010
		   &0111
		    0010->2
		 * */
		System.out.println(num1|num2);//位或运算
		/*
	 	1010
	   |0111
	    1111->2
		 */
		System.out.println(num1^num2);//位异或运算
		/*
	 	1010
	   ^0111
	    1101
		 */
		//用最有效的方式计算4*2^n
		System.out.println(6<<4);//左移
		// 00000000001100000 6*2^4
		System.out.println(18>>2);//右移
		//00000000000100 18/2^2
		int c=3;//在函数中定义的变量 局部变量 调用之前 必须得初始化
		System.out.println(c);
		//c cannot be resolved to a variable
		//The local variable c may not have been initialized
		//除法 两个整数相除 结果必为整除(分母不为0)
		//如果结果是小数的话 那么除数和被除数至少要有一个小数(float,double)
		//在Java中 小数的运算结果都是有精度的 但是在显示的时候 会有误差
		System.out.println(1-0.1-0.1-0.1-0.1-0.1);
		System.out.println(1-0.5);
	}
}

n++与++n

public class PlusPlusDemo {
	public static void main(String[] args) {
		//++ -- 自身+1 自身-1
		//n++ ++n 
		//n++ 先调用后++
		//++n 先++再调用
		int i=3;
		i++;//4
		System.out.println(i);//4
		System.out.println(i++);//4
		//i=5
		int j=i++;//j=5 i=6
		System.out.println(j);//5
		System.out.println(i);//6
		i=i++;//i=6 i=7
		System.out.println(i);//6
		i=i++;
		System.out.println(i);//6
		/*	n++ n--同理
		 * 	1.先开辟临时存储区 将n的值赋值进去
		 *  2.然后n本身的值+1
		 * 	3.最后将临时存储区的值调用出去
		 * 
		 * 	++n --n
		 * 	简单粗暴 直接n自身+/-完毕后 再调用
		 * */				
	}
}

例题

一. 显示当前时间
在这里插入图片描述

public class Test1 {
	//显示当前时间
	public static void main(String[] args) {
		//获取从1970 1-1 00:00:00 到至今的毫秒数
		long millis=System.currentTimeMillis();
		long seconds=millis/1000;
		long minutes=seconds/60;
		long hours=minutes/60;
		//如何从经过的毫秒值里获取当前小时 总小时%24
		System.out.print(hours%24+8+":");//东八区+8
		//...当前分钟
		System.out.print(minutes%60+":");
		//...当前秒
		System.out.println(seconds%60);
	}
}

二,整钱兑零

import java.util.Scanner;
//整钱兑零
public class Test2 {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		//获取用户输入的钱数 double
		System.out.println("请输入总钱数:");
		//美分数 
		int money=(int) (scanner.nextDouble()*100);
		//获取美元
		int dollar=money/100;//1156
		money=money%100;//剩余的美分数 56
		//获取2角5分
		int quarter=money/25;//2
		money=money%25;//6
		//获取1角
		int dime=money/10;//0
		money=money%10;//6
		//获取5分
		int nickel=money/5;//1
		int penny=money%5;//1
		System.out.println("dollar="+dollar);
		System.out.println("quarter="+quarter);
		System.out.println("dime="+dime);
		System.out.println("nickel="+nickel);
		System.out.println("penny="+penny);
	}
}

编程练习题
在这里插入图片描述

import java.util.Scanner;
public class Demo2_1 {//IPO Input Process Output
	public static void main(String[] args) {
		//1.获取用户输入的摄氏温度
		Scanner scanner=new Scanner(System.in);
			//提示信息
		System.out.print("Enter a degree in Celsius:");
		double celsius=scanner.nextDouble();
		//2.将摄氏温度转换为华氏温度
		double fahrenheit=(9.0/5)*celsius+32;
		//3.将华氏温度输出
		System.out.println(celsius+" Celsius is "+fahrenheit+" Fahrenheit");
	}
}

在这里插入图片描述

import java.util.Scanner;
public class Demo2_2 {
	//全局常量
	public static final double PI=3.1415926;
	public static void main(String[] args) {
		//1.获取用户输入的半径和高
		Scanner scanner=new Scanner(System.in);
			//提示
		System.out.print("Enter the radius and length of a cylinder:");
		double radius=scanner.nextDouble();
		double length=scanner.nextDouble();
		//2.先计算底面积 后计算体积
		double area=radius*radius*PI;
		double volume=area*length;
		//3.将体积输出
		System.out.println("The area is "+area);
		System.out.println("The volume is "+volume);
	}
}

在这里插入图片描述

import java.util.Scanner;
public class Demo2_3 {
	public static void main(String[] args) {
		//1.获取用户输入的数字
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter a number betweem 0 and 1000:");
		int number=scanner.nextInt();
		//2.将数字进行分解
		/*
		987%10=7->a
		987/10=98
		98%10=8->b
		98/10=9
		9%10=9->c
		a+b+c
		98%10=8->a
		98/10=9
		9%10=9->b
		9/10=0
		0%10=0->c
		*/
		int a=number%10;
		number/=10;
		int b=number%10;
		number/=10;
		int c=number%10;
		//3.将三个数字相加并输出
		System.out.println("The sum of the digit is "+(a+b+c));
	}
}

在这里插入图片描述

import java.util.Scanner;
public class Demo2_4 {
	public static void main(String[] args) {
		//1.获取用户输入的分钟数
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter the number of minutes:");
		int mintues=scanner.nextInt();
		//2.将从分钟数中转化处天数->年数
		int days=mintues/60/24;
		int years=days/365;
		days=days%365;
		//3.输出
		System.out.println(mintues+" mintues is approximately "+years+" years and "+days+" days");
	}
}

在这里插入图片描述

import java.util.Scanner;
public class Demo2_5 {
	public static void main(String[] args) {
		//获取从1970 1-1 00:00:00 到至今的毫秒数
		Scanner scanner=new Scanner(System.in);
		//获取偏移量
		System.out.print("Enter the time zone offset to GMT:");
		int offset=scanner.nextInt();
		long millis=System.currentTimeMillis();
		long seconds=millis/1000;
		long minutes=seconds/60;
		long hours=minutes/60;
		//如何从经过的毫秒值里获取当前小时 总小时%24
		System.out.print(hours%24+offset+":");//东八区+8
		//...当前分钟
		System.out.print(minutes%60+":");
		//...当前秒
		System.out.println(seconds%60);
	}
}

在这里插入图片描述

import java.util.Scanner;
public class Demo2_6 {
	public static void main(String[] args) {
		//1.输入水的重量 初始温度 最终温度
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter the amount of water in kilograms:");
		double weight=scanner.nextDouble();
		System.out.print("Enter the inital temperature:");
		double initalTemp=scanner.nextDouble();
		System.out.print("Enter the final temperature:");
		double finalTemp=scanner.nextDouble();
		//2.根据公式 计算能量
		double energy=weight*(finalTemp-initalTemp)*4184;
		//3.输出能量值
		System.out.println("The energy needed is "+energy);
	}
}

在这里插入图片描述

public class Demo2_7 {
	public static void main(String[] args) {
		double money=100;//本金
		double rate=5.0/100/12;//月利率
		//第一个月
		money=money*(1+rate);
		money=(money+100)*(1+rate);
		money=(money+100)*(1
                        
                        
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_43042610/article/details/82953648
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢