Java编程文头
package com.softeem.basic;//包名 单行注释
三种注释方式
- 主方法
- 输出语句
- 文档化注释,能够生成API文档
public class Demo_01 {//类名
多行注释
主函数:主方法,是程序的入口,所有程序的开始和方法的调用都必须在主方法里面
1、主函数的写法固定
2、一个程序中不能没有主函数,但是一个程序中只能写一个主函数
public static void main(String[] args){
/*
* 输出语句:将程序的结果输出在控制台上
* 1、输出语句写在主函数里面,或者方法中
* 2、输出语句在一个程序中可以出现很多次
* 3、输出语句的写法也是固定的
*/
//println:打印完一行之后,下一行换行输出
//print:打印完一行之后,下一行默认不换行,接在上一句的后面写
//如果想要打印错误的信息
System.err.println("我是一个错误信息");
基本数据类型
java的数据类型:
- 基本数据类型:
- 整型: byte short int long
- 浮点型: float double
- 字符型: char
- 布尔类型: boolean
- 引用数据类型:
- 类
String
- 类
- 接口
- 数组…
- 基本数据类型的封装类型:将基本数据类型的一些已经写好了的东西封装在java内部,可以使用封装类型去调用
- byte ----> Byte
- short ----> Short
- int ----> Integer
- long ----> Long
- float ----> Float
- double ----> Double
- char ----> Character
- boolean ----> Boolean
变量:变量是一个容器,用来存储规定的数据类型的元素
变量如何定义:
1、数据类型 变量名 = 赋值
2、数据类型 变量名;
变量名 = 赋值;
byte
short
int
long
在java中默认整数类型都是使用int来表示
byte,short类型之间进行算术运算的时候,结果会自动转换为int类型
boolean,只有true和false两个值
String:字符串类型,是最常用的引用数据类型
String类型是用双引号来赋值的,里面可以是任何字符
String是长度不可以改变的字符串
StringBuilde和StringBuffer是长度可变的字符串
int类型的最大值:2147483647
long类型的最大值:9223372036854775807
byte类型的最大值:127
yte类型的最小值:-128
double类型的最大值:1.7976931348623157E308
当给long类型赋值的数超过int类型的最大值的时候,必须在赋值的数后面加L或l来表示这个数是long类型
如果没有超过的话,可以直接赋值。但是一般情况下只要定义long类型的变量,赋值的时候就主动加上L
int c = 2147483647;
long d = 2147483648L;
long e = 10;
float:单精度浮点型,精确到小数点后面6或7位
double:双精度浮点型,精确到小数点后面16位或17位
注意:不是指小数点后面精确到一位还是两位
浮点类型的数默认是double类型,如果想要使用float类型来存储
如果给浮点型赋值整数的时候,会自动转换成小数输出
如果想要使用float类型来存储,需要在赋值的数后面加F或f
给double类型赋值的时候,不需要加任何的后缀
BigDecimal:是java中内置的类,如果想要调用需要导包
char
语法:char 变量名 = ‘值’;
1、值:只能是一个字符
2、单引号内不能为空
3、值可以是任何的字符
char a1 = 'a';
char a2 = '1';
char a3 = ' ';//空格
char a4 = '人';
当给char类型直接赋值一个整数(0 - 127)的时候自动转换成ASCII码
32 : 空格
48 ~ 57 : 0 ~ 9
65 ~ 90 : A ~ Z
97 ~ 122 :a ~ z
在java中有很多种编码格式,Unicode编码
包含了世界上所有的语言的所有的字符
4E00 ~ 9FA5
数据类型之间的相互转换
隐式转换(直接转换):将小的数据类型转换成大的数据类型
强制转换:大的数据类型转化成小的数据类型
byte < short < int < long <flaot < double
^
|
char
八种基本数据类型中,除了boolean类型之外,其余的数据类型之间都可以相互转换
强制转换:一般发生在小数转整数,字符转数据的时候使用
要将数据转换成什么类型,括号里面就放什么类型
最终数据类型 最终变量名 = (最终数据类型) 原始变量或者原始数据
int e = (int) d;
注意:小数强制转换成整数的时候,只取整数部分,小数部分舍去
整数和字符之间相互转换
int aa = '中';
System.out.println("aa = " + aa);//aa = 20013
char bb = 23456;
System.out.println("bb = " + bb);//bb = 宠
Java 分支语句
分支语句:按照规定执行相应的代码
if(条件表达式){
语句体;
}
执行过程:
条件表达式是一个Boolean类型的值
如果条件表达式的值为true,就执行语句体,如果条件表达式的值为false,就不执行
if(条件表达式){
语句体1;
}else{
语句体2;
}
执行条件:
如果条件表达式为true,就执行语句体1;
如果条件表达式为false,就执行语句体2;
if(条件表达式1){
语句体1;
}else if(条件表达式2){
语句体2;
}else if(条件表达式3){
语句体3;
}else{
语句体4;
}
执行条件:
那个条件为true,就执行那个语句体;
如果所有的表达式都是false,就执行最后一个else里面的语句体;
Java 循环
循环:按照规定,程序在一个范围内进行重复循环
for循环
for(初始换表达式;条件表达式;控制条件表达式){
语句体;
}
初始化条件表达式:程序从什么时候开始执行
条件表达式:程序执行到什么样的条件之后结束
控制条件表达式:每次执行为完一次循环之后,程序的条件做一个什么样的改变
语句体:循环体,是程序执行的主体
执行过程:
1、执行初始化条件表达式,只执行一次
2、执行条件表达式,判断条件表达式的值是true,还是false。
3、如果条件表达式值为true,就执行语句体,如果条件表达式的值为false,就不再执行程序
4、执行控制条件表达式,对程序原来的条件进行改变
5、执行第二步,一直执行到表达式的值为false为止
while循环:
初始化条件表达式:
while(条件表达式){
循环体;
控制条件表达式;
}
执行过程和for循环是一样的
执行过程:
1、执行初始化表达式,只执行一次
2、执行条件表达式,判断条件表达式的值是true,还是false。
3、如果条件表达式值为true,就执行语句体,如果条件表达式的值为false,就不再执行程序
4、执行控制条件表达式,对程序原来的条件进行改变
5、执行第二步,一直执行到表达式的值为false为止
do…while…循环:
语法:
初始化条件表达式;
do{
语句体;
控制体条件表达式;
}while(条件表达式);
执行过程:
1、执行初始化条件表达式
2、执行语句体;
3、执行控制条件表达式
4、执行条件表达式,如果条件表达式为true,就执行语句体,如果条件表达式为false,就不再运行程序
5、回到第三步
注意:
无论条件表达式是否符合,至少执行一次
嵌套循环:
一层循环里面再写一层
public static void main(String[] args) {
for(int i = 0; i <= 5; i++){
for(int j = 0; j <= 3; j++){
System.out.println("j = " + j);
}
System.out.println("================================");
}
}
Java 数组
数组:
数据类型可以是基本数据类型也可以是引用数据类型
动态初始化的含义就是,当我们在创建数组的时候,计算机就会自动给我们在内存中开辟连续的空间,用来储存数据,会自动填入相应数据类型的初始值
每种数据类型的初始值:
数据类型 初始值
byte、short、int、long 0
float、double 0.0
char \u0000:空格
boolean false
引用数据类型 mull
在数组的表示过程中,会使用下标来给数组进行编号,我们在存储数据的时候都是使用下标进行标记
下标是从0开始的,最后一个元素的下标是:数组长度 - 1
如何获取到数组中的元素:数组名[数组下标]
给数组中的元素进行赋值:[下标]=赋值;
扫描器
扫描器:Scanner
作用:试讲用户输入到控制台的信息获取到
public static void main(String [] args){
//1、创建一个扫描器对象
//创建的过程是固定的,除了sc是自己定义的其余的全部固定
//当创建完成之后,要将Scanner的包导入进来
Scanner sc=new Scanner(Sysrem.in);
//2、提示性语句,输入语句告诉用户需要往里面输入什么信息
System.out.println("请输入你的名字");
//3、获取到用户输入的信息,并赋值给一个变量
String.name=sc.next();
//4、信息处理
System.out.println("名字:"+name);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数:");
double num1 = sc.nextDouble();
System.out.println("请输入第二个数:");
double num2 = sc.nextDouble();
System.out.println(num1 + " + " + num2 + " = " + (num1 + num2));
byte a1 = sc.nextByte();
short a2 = sc.nextShort();
int a3 = sc.nextInt();
long a4 = sc.nextLong();
float a5 = sc.nextFloat();
double a6 = sc.nextDouble();
boolean a7 = sc.nextBoolean();
String a8 = sc.next();
注意:对于Scanner来说,没有一个方法用来接收char类型的值,所以在定义的时候要注意不要去定义char类型的变量,因为Scanner接收不了。
随机数、Math.random、Random
随机数
public static void main(String [] args){
Random r=new Random();
//产生0~1之间的小数,包含0单不包含1
double a1=r.nextDouble();
System.out.println("a1="+a1);
//产生int范围内的整数
int a2=r.nextInt();
System.out.println("a2="+a2);
//产生0 - n之间的整数,包含最小值,不包含最大值
int a3 = r.nextInt(10);//括号里面写最大值
System.out.println("a3 = " + a3);
//产生10 - 20之间的整数
int a4 = 10 + r.nextInt(20 - 10);
System.out.println("a4 = " + a4);
for(int i = 0; i <= 20; i++){
int a5 = r.nextInt(100);
System.out.println(a5);
}
}
Math.random
//默认产生0 - 1之间的小数,包含0但是不包含1
double b1 = Math.random();
System.out.println("b1 = " + b1);
//产生0 - 10之间的小数
double b2 = Math.random() * 10;
System.out.println("b2 = " + b2);
//产生0 - 100之间的整数
int b3 = (int)(Math.random() * 100);
System.out.println("b3 = " + b3);
//产生65 - 90之间的整数
int b4 = 65 + (int)(Math.random() * (90 -65));
System.out.println("b4 = " + b4);
}