2.1关键字和标识符
- 关键字:赋予Java特殊含义的单词。Java中的关键字是有限的,你不用特别去记忆,一般集成环境会用颜色为你区分。eg:class,void,final…
- 标识符:在程序自定义中用于标识程序中诸如类,方法和变量的元素而采用的命名。标识符遵从以下规则:
*标识符是由字母,数字,下划线和美元符号,构成的字符序列.
*不能由数字开头。
*标识符不能是关键字。
eg:Demo,main,input…
2.2注释和常量
- 注释:用于注释说明也可以调试程序,注释不会出现在编译文件中去。
*单行注释//
*多行注释/**/
*文档注释:
/ *需求:
思路:
步骤:
**/ - 常量:不能改变的数值。常量分为:整数常量,小数常量,Boolean常量,字符常量,字符串常量,NULL。
- 进制:举个例子十进制26
*转二进制26/2=13…0;13/2=6…1;6/2=3…0;3/2=1…1;1/2=0…1,结果:11010
*二进制转八进制,从右至左3位一个数,及就是023;二进制转十六进制:从右至左4位一个数,及就是0x13;
*转八进制:26/8=3…2;3/26=0…3;结果32
转16进制:26/16=1…10;1/16=0…1;结果:0x1a;对于16进制10,11,12,13,14,15分别记为a,b,c,d,e,f
2.3变量和数据类型
- 变量:用于表示在程序中可能被改变的值,变量用于表示特定类型的数据。为了使用变量,可以通过告诉编译器变量的名字及其可以存储的数据类型来声明该变量。
- 数据类型
** 整数型有:
1.byte bit 范围 byte 1字节 8位-27~27-1 -128~127
2.short 2字节 16 -215~215-1 -32768~32767
3.int(常用) 4字节 32
4.long 8字节 64
**浮点型有小数:
1.float 4字节
2.double(常用) 8字节
**字符型有:
char 2字节 16位 1~65536
**布尔型有:
boolean 不确定(争论)true false
bit byte 1
JVM 1->4字节 int
2.4输入和输出
-
Scanner对象:用Scanner类从控制台输入,System.in是标准的输入设备。
**Scanner sc=new Scanner(System.in)**表明创建了一个Sanner类型的对象,并且将其引用赋值给变量sc,对象可以调用它自己的方法,就是让这个对象完成某个任务,比如sc.next(Int)就是读取一个整数值。 -
System.out.print,java使用System.out来表示标准的输出设备,可以直接输出一个变量,也可以输出字符串加“”,还可以输出表达式。
2.5数据类型转换
- 自动升类型不报错的情况:
int x=3;//在内存中00000000-00000000-00000000-00000011
byte b=4//在内存中00000100
x=x+b//x为int,会将b自动转换成int类型,那么b就变为00000000-00000000-00000000-00000100
最后一加即就是00000000-00000000-00000000-00000111为7
-可能 报错的情况:
byte x=3;
int b=4;
x=x+b;//此时会将右边的x变为int,右边都为int而左边为byte,编译器报错,因此我们强制转换
x=(byte)x+b;若右边的数值超过一定范围强转会有问题。
2.6算数运算符
- 基本的±*/ %就不一 一赘述了
- 自加++:采用以下的原则,i++,开辟一个空间存放i,然后复制该空间,之后给原空间i+1,而复制的空间等待被调用(赋值,输出,运算)
- 自减同理
- 实例:
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);
}
}
2.7赋值运算符
2.8位运算符
这是我在笔记本上整理的笔记,记载的很详细也很清楚
2.9逻辑运算符
这是面试的考点
&& | 一假必假,全真才真,其特点是当其左边若为假时,右边的任何表达式不参与计算; |
---|---|
双或 | 一真就真,全假比假,其特点时当期左边为真时,右边的表达式不参与计算; |
-&- | 两边都要参与运算,普通的与运算 |
或 | 普通的或运算 |
小结一下
1.标识符是程序中用于命名诸如变量 、 常量、 方法 、 类、 包之类元素的名称。
2.标识符是由字母、 数字、 下划线( _ )和美元符号( $ ) 构成的字符序列。 标识符必须以字母或下 划线( _ ) 开头, 不能以数字开头.标识符不能是保留字。 标识符可以为任意长度。
3.变量用于存储程序中的数据。 声明变量就是告诉编译器变量可以存储何种数据类型。
4.有两种类型的 import 语句: 明确导入和通配符导入。 明确导人是在 import 语句中指定导入单个 类;通配符导入将包中所有的类导入。
5.在 Java 中, 等号( = ) 被用作賦值操作符。
6.方法中声明的变量必须在使用前被賦值 。
7.命名常量(或简称为常量) 表示从不改变的永久数据。
8.用关键字 final 声明命名常量。
9.Java 提供四种整数类型( byte、 short、 int、 long) 表示四种不同长度范围的整数。
10.Java 提供两种浮点类哲(float、 double) 表示两种不同精度的浮点数。 11.Java 提供操作符完成数值运算: 加号(+)、 减号(- )、 乘号( * )、 除号(/) 和求余符号(%)。
12.整数运算(/) 得到的结果是一个整数。
13.Java 表达式中的数值操作符和算术表达式中的使用方法是完全一致的。 14.Java 提供扩展陚值操作符 :+= (加法陚值 )、 -=(减法陚值)、 *=(乘法陚值)、 /=(除法陚值) 以 及 %=(求余陚值)。
15.自增操作符( ++) 和自减操作符(–) 分别对变量加1或减1。
16.当计算的表达式中有不同类型的值, Java 会自动地将操作数转换为恰当的类型。
17.可以使用(type)value 这样的表示法显式地将数值从一个类型转换到另一个类型。
18.将一个较小范围类型的变量转換为较大范围类型的变量称为拓宽类型。
19.将一个较大范围类型的变貴转換为较小范围类型的变量称为缩窄类型。
20.拓宽类型不需要显式转换, 可以自动完成。 缩窄类型必须显式完成。
代码示例
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+rate);
money=(money+100)*(1+rate);
money=(money+100)*(1+rate);
money=(money+100)*(1+rate);
System.out.println(money);
}
}
---------------------------------------------------------
import java.util.Scanner;
public class Demo2_8 {
public static void main(String[] args) {
//1.输入两个坐标
Scanner scanner=new Scanner(System.in);
System.out.print("Enter x1 and y1:");
double x1=scanner.nextDouble();
double y1=scanner.nextDouble();
System.out.print("Enter x2 and y2:");
double x2=scanner.nextDouble();
double y2=scanner.nextDouble();
//2.计算两个坐标之间的距离
double deltX=x2-x1;
double deltY=y2-y1;
//Math.pow(2,3) 2^3
//Math.pow(4,0.5) Math.sqrt()
double distance=Math.sqrt(Math.pow(deltX, 2)+Math.pow(deltY, 2));
//3.输出距离
System.out.println(distance);
}
}-----------------------------------------------------------------------------
import java.util.Scanner;
public class Demo2_9 {
public static void main(String[] args) {
//1.输入边长
Scanner scanner=new Scanner(System.in);
System.out.print("Enter the side:");
double side=scanner.nextDouble();
//2.计算面积
double area=3*Math.sqrt(3)/2*Math.pow(side, 2);
//3.输出面积
System.out.println(area);
}
}---------------------------------------------------------------------------
import java.util.Scanner;
public class Demo2_10 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
//1.输入华氏温度、风速
System.out.print("Enter the temperature in Fahrenheit between -58°F and 41°F:");
double fahrenheit=scanner.nextDouble();
System.out.print("Enter the wind speed(>=2) in miles per hour:");
double speed=scanner.nextDouble();
//2.根据公式计算室外风寒温度
double windChill=35.74+0.6217*fahrenheit-35.75*Math.pow(speed, 0.16)+0.4275*fahrenheit*Math.pow(speed, 0.16);
System.out.println(windChill);
}
}----------------------------------------------------------------------------
import java.util.Scanner;
public class Demo2_11 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
//1.输入三个坐标
System.out.print("Enter three points for a triangle:");
double x1=scanner.nextDouble();
double y1=scanner.nextDouble();
double x2=scanner.nextDouble();
double y2=scanner.nextDouble();
double x3=scanner.nextDouble();
double y3=scanner.nextDouble();
//2.根据坐标求三边
double sideA=Math.sqrt(Math.pow(x1-x2, 2)+Math.pow(y1-y2, 2));
double sideB=Math.sqrt(Math.pow(x1-x3, 2)+Math.pow(y1-y3, 2));
double sideC=Math.sqrt(Math.pow(x2-x3, 2)+Math.pow(y2-y3, 2));
//3.根据三边求面积
double s=(sideA+sideB+sideC)/2;
double area=Math.sqrt(s*(s-sideA)*(s-sideB)*(s-sideC));
System.out.println(area);
}
}