被Java赋予特殊含义的单词,不可以随意使用。例如:class、double、for、return、public等。
程序员在写代码过程中自定义的一些名称,包括变量名、类名、函数名、接口名、常量名等。注意mian也是标识符,不过被写死了,大家都这么用。如果将main更改名字编译可以通过,但是运行时会报错。
class AAA{
public static void aini(String[] args){
System.out.println("爱你!");
}
}
运行结果
错误: 在类 AAA 中找不到 main 方法, 请将 main 方法定义为:
public static void main(String[] args)
否则 JavaFX 应用程序类必须扩展javafx.application.Application
标识符由字母、数字、下画线、美元符组成。!!!数字不能开头,严格区分大小写,不能使用关键字和Java中自带类的名称。!!!同时为了提高标识符的可读性,程序员在命名标识符的时候都会起一些有意义的名字,英文单词,注意:!!!不要使用拼音。!!!
如果标识符由多个单词组成,那么除了第一个单词首字母小写,其他单词首字母大写。主要用于:变量名、函数名。
如果标识符由多个单词组成,所有单词首字母大写。主要用于:类、接口。
如果标识符由多个单词组成,每个单词的每个字母都大写单词之间用下划线连接。主要用于:定义常量。
在代码过多的情况下,程序员容易忘记,注释存在的意义就是提示程序员。并且可以帮助别人理解你的代码。
注释本身是不属于代码范畴的,注释不会进入字节码(.class文件)。
单行注释、多行注释、文档注释。
使用//,//后面的内容都是注释内容直到换行为止。
使用/****/,两个星号之间的内容为注释内容。
使用/**** */,第二个星号之后的内容为注释内容。文档注释可以帮助我们制作程序说明书。
注意:单行注释里面可以套多行注释,多行注释里面可以套单行注释,多行注释里面不能套多行注释。
常量是一些数据数据本身不能够被改变。
常量分类:整数、浮点数、字符、字符串、布尔、空。
说到整数就要说一下进制之间的转换。
二进制整数以0b开头、八进制整数以0开头、十进制整数是默认整数直接写就好、十六进制整数以0x开头。
二进制数:01000110
二进制转八进制:将二进制的三位看作为一个单位进行十进制转换得到的就是八进制数
将二进制数划分: 001 000 110
十进制转换: 1 0 6
八进制数:114
二级制转十进制:将二进制数由左至右依次乘2^0、2^1、2^2......将每位所得结果相加
0*2^0+0*2^1+1*2^2+1*2^3+0*2^4+0*2^5+1*2^6+0*2^7=76
十进制数:70
二进制转十六进制:将二进制的四位看作为一个单位进行十进制转换得到的就是十六进制数
将二进制数划分: 0100 0110
十进制转换: 4 6
十进制转二进制:给十进制数不断除2取余知道商为0,然后将得到的余数自下而上就得到十进制数转换的二进制数
70%2=35------0
35%2=17------1
17%2=8-------1
8%2=4--------0
4%2=2--------0
2%2=1--------0
1%2=0--------1
二进制数:01000110
一般小数 、科学计数小数2.1e3表示2.1*10^3。
由一个数字、字母、符号被单引号包含的数据。
由一个或多个数字、字母、符号被双引号包含的数据。
有两个值true false表示真和假
null
本身可以改变的数据。变量本质上是在内存中某个进程里的一个临时存储区域。变量是用来存储一些在计算中产生的临时性数据。每一个变量空间在被创建的时候都会被随机分配地址。变量空间中的数据在变化过程中必须保持是可兼容的。
变量里面存的是什么?
!!!地址!!!
将变量和指针放在一起讲。
//指针
#include
int main(void) {
int a=3;
int b=3;
int* c;//指针变量
c=&b;
int** d;//双重指针变量
d=&c;
printf("a的值:%d\n",a); //a的值
printf("b的值: %d\n",b);//b的值
printf("c的值: %d\n",c);//c的值 b的地址
printf("d的值: %d\n",d);//d的值 c的地址
printf("a的地址:%d\n",&a);//a的地址
printf("b的地址:%d\n",&b);//b的地址
printf("c的地址:%d\n",&c);//c的地址
printf("d的地址:%d\n",&d);//d的地址
printf("%d\n",*c);//指针操作,使用c里面存的地址,找内存空间,即b的值3
printf("%d\n",&*c);//先指针操作,然后取地址,即b的地址
printf("%d\n",*&c);//先取c的地址,然后进行指针操作,即c里面存放的内容,即b的地址
printf("%d\n",*&**&d);/*先取d的地址,然后寻找内存空间找到d,然后指针操作,即拿着d里面存
放的地址去找,找到c,然后取c的地址,然后寻址,即c里面存放的内容,即b的地址*/
}
运行结果
a的值:2
b的值: 3
c的值: 6487576
d的值: 6487568
a的地址:6487580
b的地址:6487576
c的地址:6487568
d的地址:6487560
3
6487576
6487576
6487576
1、
解析:华氏温度和摄氏温度为两个变量,所以设置两个变量,将变量代入公式进行计算。由于需要使用从键盘获取数字,所以需要导入Scanner
import java.util.Scanner;
class ProblemOne{
public static void main(String[] args){
System.out.print("Enter a degree Celsius:");//按格式输出
Scanner input=new Scanner(System.in);//定义input,即从键盘输入
double celsius=input.nextDouble();//使摄氏温度是从键盘得到的数
double fahrenheit=(9.0/5)*celsius+32;//计算华氏温度
System.out.println(celsius+" Celsius is "+fahrenheit+" Fahrenheit");
}
}
运行结果
Enter a degree Celsius:43
43.0 Celsius is 109.4 Fahrenheit
2、
解析:需要设置五个变量:半径、高、面积、体积、圆周率。代入公式计算然后按格式输出。由于需要使用从键盘获取数字,所以需要导入Scanner。
import java.util.Scanner;
class ProblemTwo{
public static void main(String[] args){
System.out.print("Enter the radius and length of a cylinder:");
Scanner input=new Scanner(System.in);//定义input
double radius=input.nextDouble();//半径
double length=input.nextDouble();//高
double p=3.14;//圆周率
double area=radius*radius*p;//计算面积
double cylinder=area*length;//计算体积
System.out.println("The area is "+area);
System.out.println("The Volume is "+cylinder);
}
}
运行结果
Enter the radius and length of a cylinder:5.5 12
The area is 94.985
The Volume is 1139.82
3、
解析:获得个位上数字使用a%10。获得十位上数字先a%100=b,得到两位数之后b/10就得到十位上数字。获得百位上数字,直接除100即可。由于需要使用从键盘获取数字,所以需要导入Scanner。
import java.util.Scanner;
class ProblemThree{
public static void main(String[] args){
System.out.print("Enter a number between 0 and 1000:");
Scanner input=new Scanner(System.in);//定义input
int number=input.nextInt();//获得数字
int a=number%10+number%100/10+number/100;//计算各位上数字和
System.out.println("The sum of the digits is "+a);
}
}
运行结果
Enter a number between 0 and 1000:999
The sum of the digits is 27
4、
解析:先获得总毫秒数,通过System.currentTimeMillis();函数得到总毫秒数。然后计算总秒数=总毫秒数/1000、总分钟数=总秒数/1000、总小时数=总分钟数/60.
然后计算当前秒数=总秒数%60、当前分钟数=总分钟数%60、当前小时数总小时数%24
由于需要使用从键盘获取数字,所以需要导入Scanner。
import java.util.Scanner;
class ProblemFour{
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
long totulMillSeconds=System.currentTimeMillis();//获得毫秒数
long totulSeconds=totulMillSeconds/1000;//总秒数
long currentSecond=totulSeconds%60;//当前秒数
long totulMinutes=totulSeconds/60;//总分钟数
long currentMinute=totulMinutes%60;//当前分钟数
long totulHours=totulMinutes/60;//总小时数
long currentHour=totulHours%24;//当前小时数
System.out.print("Enter the time zone offset to GMT:");
long a=input.nextLong();
System.out.println("Current time is " + (currentHour+a) +":"+ currentMinute +":" + currentSecond);
}
}
运行结果
Enter the time zone offset to GMT:-5
Current time is 7:4:20
5、
解析:我们需要求总钱数所以设置变量sum初始值设为0;每个月都会存100$,所以设置a=100;使用循环解决此问题。由于需要使用从键盘获取数字,所以需要导入Scanner。
import java.util.Scanner;
class ProblemFive{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.print("Enter the mouthly saving amount:");
double a=input.nextDouble();
double sum=0;
for(int i=0;i<6;i++){
sum=(sum+a)*(1+0.00417);
}//循环求和,求第六个月所以循环6次
System.out.println("After the six mouths,the account value is $"+sum);
}
}
运行结果
Enter the mouthly saving amount:100
After the six mouths,the account value is $608.8181155768638
6、
解析:由于需要使用从键盘获取数字,所以需要导入Scanner。
import java.util.Scanner;
class ProblemSix{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.print("Enter x1 and x2:");
double x1=input.nextDouble();//x1
double y1=input.nextDouble();//y1
System.out.print("Enter x2 and y2:");
double x2=input.nextDouble();//x2
double y2=input.nextDouble();//y2
double length=Math.pow((Math.pow((x2-x1),2)+Math.pow((y2-y1),2)),0.5);//求长度
System.out.println("The distance between the two points is"+length);
}
}
运行结果
Enter x1 and x2:1.5 -3.4
Enter x2 and y2:4 5
The distance between the two points is8.764131445842194
7、
解析:由于需要使用从键盘获取数字,所以需要导入Scanner。
import java.util.Scanner;
class ProblemSeven{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.print("Enter three points for a trisangle:");
double x1=input.nextDouble();
double y1=input.nextDouble();
double x2=input.nextDouble();
double y2=input.nextDouble();
double x3=input.nextDouble();
double y3=input.nextDouble();
double a=Math.pow((Math.pow((x2-x1),2)+Math.pow((y2-y1),2)),0.5);//求第一条边长度
double b=Math.pow((Math.pow((x3-x1),2)+Math.pow((y3-y1),2)),0.5);//求第二条边长度
double c=Math.pow((Math.pow((x2-x3),2)+Math.pow((y2-y3),2)),0.5);//求第三条边长度
double s=(a+b+c)/2;
double area=Math.pow((s*(s-a)*(s-b)*(s-c)),0.5);//求面积
System.out.println("The area of the trisangle is "+area);
}
}
运行结果
Enter three points for a trisangle:1.5 -3.4 4.6 5 9.5 -3.4
The area of the trisangle is 33.600000000000016