Java基础总结1
1.jdk的下载与安装
在官网下载之后,安装,配置环境变量。(百度)
我的第一个java程序
public class FirstDemo{
//入口方法
public static void main(String[]args){
System.out.println("Hello world!");
}
}
输出结果:
2.类和注释
/**
1.在一个java源文件中只允许有一个类使用public进行修饰
2.使用public修饰的类的名称必须和原文件名一致
3.一个原文件中可以有多个类
4.如果有多个class时,进行编译后会生成多个.class文件,文件名和类名相同
5.java中所有字母区分大小写
*/
public class SecondDemo{
//单行注释 让开发人员方便记录 程序在编译和执行过程中,程序不对这句话进行编译和执行
/*
多行注释
在该区域内的所有代码都被注释
*/
/**
文档注释
*/
//程序入口方法
public static void main(String[]args){
}
}
class SecondDemo01{
}
class SecondDemo02{
}
结果输出:
3.变量
3.1 变量的分类
public classs ThirdDemo{
//入口方法
/**
根据位置的划分可分为:
1.全局变量
2.局部变量:除了全局变量都是局部变量
作用域:通俗地讲叫做作用范围 一个花括号的开始到一个花括号的结束
//根据表现形式可划分三种变量
1.形参变量
2.方法内的变量
3.代码块变量
*/
//全局变量:在类作用域中定义的变量
int age=10;//定义一个全局变量
String name="花木兰";
//形参变量 args
public static void main(String[]args){
//局部变量 方法内的变量
int sex=0;
}
//代码块变量
{
int age1=23;
}
}
3.2 变量的使用规则
public class FourDemo{
/**
变量的使用规则
1.变量必须先定义赋值后再使用
*/
/**
全局变量
必须在定义的时候附上初始值
如果不附初始值,它可以有一个默认值
*/
//定义声明一个变量
static int a=10;//必须使用static修饰 可以不赋值
//在同一个作用域内,变量名只能被定义一次
//float a=11.0f;
//入口方法
public static void main(String[]args){
System.out.println("a=="+a);
//变量使用规则是先定义赋值 后使用
//1.先声明一个变量,再赋值,后使用
int b;
//给b赋值
b=10;
//使用b
System.out.println("b=="+b);
//2.在声明的同时直接赋值
int c=1024;
System.out.println("c=="+c);
//3.一次声明多个变量,给其赋值
//int x=2,y=3,z=4;//可以用这种方法进行赋值
//int x=y=z=5; //不可以 赋值和定义必须在同一行
int x,y,z;
x=y=z=5;//先声明再赋值
System.out.println("x=="+x+"\t"+"y=="+y+"\t"+"z=="+z);
}
}
结果输出
4.数据类型
public class FiveDemo{
//入口方法
public static void main(String[]args){
/**
java中的数据类型总体可分为两部分
1.基本数据类型,又称为原生数据类型
可分为四类
整数型: byte、short、int 、long
浮点数型:float、double
字符型: char
布尔型: boolean
2.引用数据类型,又称为对象数据类型
除了8种基本数据类型,其他所有类型都是引用数据类型,包括类、接口、数组。
引用数据类型默认初始值都是null。
*/
//整形 byte 字节类型 1个字节 8位 取值范围是-128-127
byte b=127;
//short 短整形 2个字节 -2^15-2^15-1;
short s=128;
//int 整形 4个字节 取值范围 -2^31-2^31-1
//java中默认的整形常量都是int类型
int i=23;
//long 长整形 8个字节 取值范围 -2^63-2^63-1
//声明long类型的变量的时候 在后面最好加一个大写L区分类型
long t=33L;
//浮点数型
//float 单精度类型 4个字节 必须在小数后加f或F;
float f=12.9f;
//double 双精度类型 8个字节 默认的小数都是double类型 后面的d或D可以省略
double d=23.1;
//字符类型 char 2个无符号字节 可以表示一个无符号的整数
//java中char默认的编码格式是Unicode编码格式 GBK UTF-8
//char必须是一个字符 必须使用单引号括起来
char c='a'+12;
System.out.println(c);
//boolean 布尔值类型 1个位 true 或者 false
boolean bl=true;
//引用类型String
System.out.println(8 + 7 + "Hello");//结果是
System.out.println("Hello" + 7 + 8);//结果是
System.out.println(7 + "Hello" + 8);//结果是
String str = 17 + "ABC";//组成一个新的字符串
System.out.println(str);
}
}
结果输出
5.数据类型转换
public class SixDemo{
//入口方法
public static void main(String[]args){
/**
java基本数据类型转换
1.自动类型转换
也称为“隐式类型转换”,当把小数据范围类型的数值或变量赋给另一个大数据范围类型变量。
boolean 类型是不可以转换为其他数据类型。
2.强制类型转换
也称为“显示类型转换”,当把大范围类型的数值或变量赋给另一个小范围类型变量时,
此时系统不能自动完成转换,需要加上强制转换符,但这样的操作可能造成数据精度的降低或溢出。
*/
//1.自动类型转换
//整形数据byte 1个字节 short 2个字节 int 4个字节
byte b=127;
System.out.println("b=="+b);
//定义一个short类型
short s=b;
System.out.println("s=="+s);
//定义一个int类型
int i=s;
System.out.println("s=="+s);
//赋值给long类型
long l=i;
System.out.println("l=="+l);
//将整形赋值给浮点数类型
double d=l;
System.out.println("d=="+d);
//2.强制类型转换
//将大范围的数据强制放到小的数据,强制类型数据转换
//一定要加一个强制类型转换符()
//将浮点数转换为整形
d=254;
l=(long)d;
System.out.println("l=="+l);
//将long类型转换成int类型
i=(int)l;
System.out.println("i=="+i);
//将int类型转换成short类型
s=(short)i;
System.out.println("s=="+s);
//将short类型转换成byte类型
b=(byte)s;
System.out.println("b=="+b);
byte b1=23;
short s1=22;
//算术运算过程中 数据类型依次进行自动增加
double dd=b1+s1+3+23.F+23L;
System.out.println("dd=="+dd);
double d1 = 123 + 1.1F + 99L + 3.14;
System.out.println("d1=="+d1);
int intMax = 2147483647;//int最大值
intMax = intMax + 1;
System.out.println("intMax + 1==" + intMax);
/*byte bb = 22;
bb = bb + 11;
System.out.println("bb=="+bb);*/
}
}
结果输出:
6.运算符
public class SevenDemo{
//入口方法
public static void main(String[]args){
/**
java中的运算符 可以分为以下几种类型
1.算术运算符
2.比较(关系)算符
3.逻辑运算符
4.赋值运算符
5.三元(三目)运算符
*/
//算术运算符 +,-,*,/(整除),%(求余),++(自增),--(自减);
//在数学中如何使用,在编程中就如何使用
int a=10,b=11;
int c=a+b;
System.out.println("a+b="+c);
System.out.println("a-b="+(a-b));
System.out.println("a*b="+a*b);
System.out.println("a/b="+a/b);
System.out.println("a%b="+a%b);
//自增 变量自身+1; a=a+1;
int d=a++;//先使用 后加1
System.out.println("d="+d+"\t"+"a="+a);
d=++a;//先加1 后使用
System.out.println("d="+d+"\t"+"a="+a);
//自减1 --
d=a--;//先使用 后减1
System.out.println("d="+d+"\t"+"a="+a);
d=--a;//先减1 后使用
System.out.println("d="+d+"\t"+"a="+a);
//关系(比较)运算符 >,<,==,>=,<=,!=;
//表达式 关系运算符 表达式 得到的结果是Boolean类型
boolean r=a+b>b-a;
System.out.println(r);
System.out.println(a*b>=b*a);
System.out.println(a<b);
System.out.println(a!=b);
System.out.println(a==b);
//逻辑表达式 或(||,|) 与(&&,&) 非(!)
//语法 boolean类型表达式 逻辑运算符 boolean类型表达式
//结果 boolean类型
//或 两个表达式有一个为真,结果为真
//与 两个表达式都为真,结果为真
//非 如果为真取反后结果为假,如果为假取反结果为真
//&,&&却别在于&&自带短路功能
boolean x=false,y=true;
System.out.println((x=a>b)&&(y=b<a));
System.out.println(x+"\t"+y);//验证短路功能
System.out.println(x&&y);
System.out.println(!(x||y));
//赋值运算符 += -= *= /= %= =
a=a+10;//等价于a+=10;
System.out.println("a=="+a);
a-=10;//a=a-10;
System.out.println("a=="+a);
a*=10;//a=a*10;
System.out.println("a=="+a);
a/=10;//a=a/10;
System.out.println("a=="+a);
a%=10;//a=a%10;
System.out.println("a=="+a);
short s=1024;
//s=s+10;//算术运算符 结果是int类型 编译不通过
s+=10;//赋值运算符
System.out.println("s=="+s);
//byte +short +int 结果为int类型
float f=12.0f+12;//float +整形 结果为float
System.out.println("f=="+f);
//三元运算符 用于赋值操作
//语法:表达式1?表达式2:表达式3;
//表达式1为真返回表达式2的值
//表达式1为假返回表达式3的值
String str=a>b?"你真帅":"你真丑";
System.out.println(str);
}
}
结果输出:
7.练习题
import java.util.*;
public class Test{
//入口方法
public static void main(String[]args){
//1.平年闰年
System.out.print("请输入年份:");
Scanner input=new Scanner(System.in);
int year=input.nextInt();
String str1=(year%4==0||year%100!=0)&&year%400==0?"闰年":"平年";
System.out.println(year+"是"+str1);
//2.奇数偶数
System.out.print("请输入一个数:");
int n=input.nextInt();
String str2=n%2==0?"偶数":"奇数";
System.out.println(n+"是"+str2);
//3.求最大数
System.out.print("请输入三个数:");
int a=input.nextInt();
int b=input.nextInt();
int c=input.nextInt();
int max=a>b?a:b;
max=max>c?max:c;
System.out.println("最大数是"+max);
//4.求最小数
System.out.print("请输入三个数:");
int a1=input.nextInt();
int b1=input.nextInt();
int c1=input.nextInt();
int min=a1<b1?a1:b1;
min=min<c1?min:c1;
System.out.println("最小数是"+min);
}
}
结果输出:
8.知识框架