Java基础自学笔记——第二章:基本程序设计

第二章 基本程序设计

一.编写简单的程序

1.算法:如果要解决问题,所需执行的动作以及这些动作执行的顺序。
算法可以用伪代码或自然语言来描述。例如:交换a和b两个数的值

public static void main(String[] args){
    int 暂存变量=a;
    a=b;
    b=暂存变量;
}

[拓展]可以不使用暂存变量交换两个数的值,且看

public static void main(String[] args){
    int a=5;//0101  5的二进制为0101
    int b=9;//1001  9的二进制为1001
    System.out.println("a:"+a+"\tb:"+b);//a:5	b:9
    a=a^b;//1100    进行异或运算,此时a作为钥匙
    b=b^a;//0101    钥匙a与原先的b异或运算得到原先的a赋给b
    a=a^b;//1001    此时的b与钥匙a异或运算的到原先的b赋给a
    System.out.println("a:"+a+"\tb:"+b);//a:9	b:5
}

2.注意

  • 直到给一个变量赋值时,该变量才被定义
  • 在源代码中字符串常量不能跨行

二.从控制台等待输入

1.Java并不直接支持从控制台输入,通过创建Scanner类的对象,来读取System.in的输入。

而使用Scanner类来创建对象需要导java.util包。

明确导入 通配符导入
import java.util.Scanner import java.util.*

两者在性能上没有什么差异。

class Welcome{
    public static void main(String[] args){
    java.util.Scanner input=new java.util.Scanner(System.in);
    int x=input.nextInt();//从键盘读取int类型的数据
    double d=input.nextDouble();//从键盘读取double类型的数据
    ...
    }
}

三.标识符

1.标识符:为了标识类、方法和变量的元素而采用的命名。

2.命名规则

  • 只能有字母、数字、下划线和$符号组成
  • 只能由字母、下划线和$开头(一般不建议用美元符号和下划线开头)
  • 不能为保留字
  • 不能为true、false或null
  • 可以为任意长度

四.变量

1.命名习惯

  • 类名一般为帕斯卡命名法,即单个或多个单词组成的类名采用首字母大写
class Welcome{//单个单词
}
class HelloWorld{//多个单词
}
  • 变量名和方法名采用驼峰命名法,即第一个单词以小写字母开始,从第二个及以后采用首字母大写
int sum=0;
int maxValue=0;
printMaxValue()
  • 常量一般单词全部大写,当有多个单词时用下划线隔开,命名常量的关键字为final
final double PI=3.14;
final int MAX_VALUE=100;

2.赋值语句和赋值表达式

a++ ++a
先赋值后运算 先运算后赋值
int a=5;
int b=a++;
System.out.println("a:"+(a++)+"\tb:"+b);//a:6	b:5
System.out.println("a:"+a);//a:7

int c=3;
int d=++c;
System.out.println("c:"+(++c)+"\td:"+d);//c:5	d:4
System.out.println("c:"+c);//c:5

3.注意

  • 方法中声明的变量在使用前必须被赋值
  • 任何时候都尽可能一步完成声明和赋值
  • 赋值表达式与赋值语句
int i=j=k=2;//错误
int i,j,k;
i=j=k=2;//正确

++d;
d++;//赋值表达式可单独作为一条赋值语句

五.数值数据类型和操作

1.Java共分为八大基本类型

其中六大基本数据类型、char型和boolean型。

类型名 最小 最大 存储大小(位)
byte -2^7 2^7-1 8
short -2^15 2^15-1 16
int -2^31 2^31-1 32
long -2^63 2^63-1 64
float -1.4E-45 1.4E-45 32
double -4.9E-324 4.9E-324 64

2.数值型直接量

java默认整型时的数据类型为int型,所以当表示一个long型的直接量时,需要加l或L。

long l=12434234l;
long h=432432543254L;

而定义浮点型直接量时,java默认为double类型,所以定义float类型时要加f或F。double比float更精确。

float x=3.0f;
double x=1.0/3.0;//0.333……(共十六位)
float y=1.0f/3.0f;//0.33……4(共八位)

java允许使用数字直接量用下划线隔开,但是下划线两端都必须有数字。

long l=32_4_5647l;//正确
long j=_234;//错误

表示进制直接量时

二进制 八进制 十六进制
0b或0B开头 0开头 0x或0X开头
int b=0b0110;//二进制    6
int c=01010;//八进制     520
int d=0x1010;//十六进制  4112

3.求余或取模操作符

求余时只有左边操作数为负数时,求余的结果才为负数

-10%3;//-1;
10%-3;//1
-10%-3;//-1

4.科学计数法

//1.4324*10^2可以表示为
1.4324E+21.4324E2

//1.4324*10^-2
1.4324E-2

5.数值类型转换
高精度转低精度时,会有精度损失

double b=3.4;
int x=(int)b;//3
int a=3;
double x=a/2;
System.out.println(x);//1.0

6.保留n位小数(此例中n为2)

double a=2020.025342;
System.out.println((int)(a*100)/100.0);//2020.02

7.增强赋值操作符

b+=a;//b=b+a

String s="";
s+=123;

注意
在使用对字符串的增强赋值操作时,要注意顺序,否则得出的结果并非是自己想要的。

六.显示当前时间

1.使用System.CurrentTimeMillis()方法返回从1970年1月1日00:00:00到当前时刻的毫秒数。根据此推导之后就可获取到当前时间。

2.1970年1月1日为UNIX系统正式发布的时间,故又称为UNIX时间戳。

七.常见错误和陷阱

  • 使用未声明、未初始化的变量
  • 整数、浮点数溢出
  • 取整错误
  • 超出预期的整数除法
  • java不会给出溢出的警告或错误

八.总结

通过第二章的学习,我知道了一些基本的规则和命名习惯,了解到了八大基本类型,之后的学习中还会带大家进一步学习。懂得了++a与a++的区别和增强赋值操作符的使用,编写代码时避免出现常见的错误和陷阱。

加油!第三章待更……

发布了4 篇原创文章 · 获赞 9 · 访问量 2174

猜你喜欢

转载自blog.csdn.net/weixin_42563224/article/details/104181378