第⼀章-Java基础笔记
Java语⾔的概述
Java是⼀门⾯向对象的语⾔,Java相对于C语⾔来说学习相对简单,它主要的三⼤特点就是:封装、继承、多态,并且只需要进⾏⼀次源码编译,在任何装有对应版本的JVM 虚拟机环境的计算机下运⾏;
Java的三个版本
JavaSE
主要⽤于桌⾯应⽤的开发
JavaME
主要⽤于嵌⼊式系统的开发
JavaEE
主要⽤于企业级的WEB端开发和服务器开发
Java环境介绍
JDK - 提供了开发者的⼀些⼯具包,并包含了[JRE和JVM]
JRE - Java的运⾏环境,提供了运⾏时需要的类库,并包含了[JVM]
JVM - Java的虚拟⼀块内存区域,⽤于执⾏Java的代码
Java跨平台交互图
Java代码的运⾏机制
后缀点java的⽂件会通过 javac命令进⾏⽂件的编译成⼀个能够被JVM读懂的字节码⽂件,通过加载、校验、初始化的过程都内存中,通过JVM寄存器读取⽂件中的⾏号,进⾏执⾏相关代码;
注释
注释是为了在编写程序时对某个类、⽅法或是⼀段代码进⾏功能作⽤的说明,它不会被编译成代码执⾏,只是起到⼀个描述作⽤,便于对代码的理解;
Java中的注释分为3种:
单⾏注释://
多⾏注释:/* */
⽂档注释:/** */
对注解的内容⽣成JavaDoc⽂档
DOS命令进⼊到要⽣成Doc⽂档的层级⽬录,执⾏:javadoc -encoding UTF-8 -charset UTF-8 ⽂件名称
/**
* @Author JavaCat7
* @Description 这是⼀个⽂档注释
*/
public class Demo{
/**
* @Parameter args 对参数的描述
* @Description 这是⼀个⽂档注释
*/
public static void main(String[] args){
//这是⼀个单⾏注释
System.out.println("Hello Java");
/*
这是多⾏注释
这是多⾏注释
*/
}
}
标识符
每个⼈都有名字,⽽标识符是为了给代码中的类、接⼝、⽅法、变量取⼀个名字,但它们的明⽩是有着严格规范的;
规范:
每个⼈都有名字,⽽标识符是为了给代码中的类、接⼝、⽅法、变量取⼀个名字,但它们的明⽩是有着严格规范的;
**规范:**
1.严格区分⼤⼩写;
2.开头可以是$ 或 _ 或 A-Z a-z的字母组成,也可以汉字(不会这么⼲);
3.可以由数字、字母或者是 $ 或 _ 组成,但数字不能⽤于开始;
4.不可以包含特殊字符;
5.不能以Java语⾔中的保留字作为命名;
6.类名采取⼤驼峰命名法;
7.⽅法和变量采取⼩驼峰命名法;
8.常量采取⼤学加_进⾏命名;
基本数据类型
Java是强类型计算机语⾔,所有的变量必须先定义才能使⽤,对于强类型⽽⾔主要就是指的数据安全,强类型的语⾔有很多,⽐如C、C++、
计算机存储单位换算
bit(位) - 是计算内部数据存储的最⼩单元,通过8个⼆进制位进⾏表⽰;
byte(字节) - 是计算机中数据处理的基本单位,通常使⽤B来表⽰;
8个bit(位) = 1B(字节)
1024个B(字节) = 1KB
1024个KB = 1MB
1024个MB = 1GB
....
//整数类型
byte a = 1;
short b = 2;
int c = 3;
long d = 4L;
//⼩数类型
float e = 5.0f;
duble f = 6.0d;
//字符类型
char g = 'a';
//布尔类型
boolean h = true;
boolean i = false;
数据类型的转换
各数值相关数据类型⽀持类型上的转换,既可以把排序级别较低的类型转换成排序级别较⼤的类型,也可以把排序级别较⾼的类型转换成级别较低的类型(但会造成数据的丢失);
数据的转换
强制类型转换 - 在要转换的变量前使⽤:要转换的对应数据类型如- (int)
⾃动类型转换 - 在不同的数值数据类型运算中,它会以排序级别较⾼的数据类型作为基础⾃动转换
int number1 = 128;
//正常byte的值是 -128 - 127,强制把int类型转换成byte会造成数据的不精确
byte number2 = (byte)number1;
int number3 = 519;
float number4 = 1.0f;
//在运算过程中因为float的排序级别⽐int⾼,那么它会⾃动转换成float类型在完成运算
float number5 = number3 + number4;
变量,静态变量,常量及作⽤域
变量是指可以变化的值,通过数据类型和变量名可以在内存中申请⼀块存储的空间,通过内存的引⽤地址可以设置改变内存中存储的值或者修改值,所有的变量必须先赋值才可以使⽤;
成员变量
成员变量是指在类中与⽅法同级的位置中定义的成员变量,在该位置定义的变量可以不⽤设置值就可以使⽤,因为它会对类进⾏初始化,并完成初始化赋值,就算不给他们赋值也会有默认的初始值,他们的默认初始值都是最⼩的单元;
作⽤域
成员位置的变量,可以在⾮静态⽅法的所有位置使⽤,如果要在静态⽅法中使⽤,需要先创建对象;
public class Variable{
int a; //默认为:0
float b; //默认为:0.0
char c; //默认为:''
boolean d; //默认为:false
}
局部变量
局部变量是指在⽅法内部定义的变量,必须要先完成初始化后,才可以被使⽤;
作⽤域
局部位置的变量,外部⽆法使⽤,只能在⽅法内部使⽤,可以和外部的变量名称相同;
public class Variable{
int number;
public void method(){
int number = 3;//可以和成员位置的变量名称相同
}
}
静态变量
静态变量是指被static关键字修饰的变量,被修饰的变量⼜称为类变量;
作⽤域
静态变量可以作⽤域与所有⽅法中,静态变量只能定义在类的成员位置;
public class Variable{
static int number ;
public static void main(String[] arags){
System.out.println(number);
}
public void method(){
System.out.println(numbe);
}
}
常量
常量是指不能被改变的值,它在创建到成员位置必须要先完成赋值,⼀旦被创建它的值是不允许被更改的;
作⽤域
它的作⽤域和成员变量相同
public class Variable{
final int NUMBER = 3.1415926;
}
静态常量
静态常量是指从属于类的常量,在完成初始化以后是不可以被修改的,并且被public所进⾏修饰;
作⽤域
它的作⽤域和静态变量相同
运算符
算术运算符
int a = 5;
int b = 2;
int number = a + b; //number = 7;
int number = b - a; //number = 3;
int number = a * b; //number = 10;
int number = a / b; //number = 2,只取整数;
double number = a / (double)b; //number = 2.5
int number = a % b; //number = 1;
⾃增⾃减运算符
int a = 1;
int b;
b = a++; //b = 1; 先把a的值赋值给b,后a进⾏ +1 操作;
b = a--; //b = 2; a前⾯进⾏了⾃增那么就是2,先把2赋值给b,然后进⾏ -1 操作;
b = ++a; //b = 2; 前⾯a进⾏了⾃减那么就是1,先对a进⾏⾃增加1,然后在赋值给b;
b = --a; //b = 1; 前⾯a是2,先对a进⾏⾃减1,在赋值给b;
赋值运算符
int a = 5;//把 5 赋值给 a;
int b = 2;//把 2 赋值给 b;
a += b; // a = 7(a+b的结果在赋值给a);
a -= b; // a = 3;
a *= b; // a = 10;
a /= b; // a = 2;
a %= b; // a = 1;
关系运算符
int a = 5;
int b = 2;
a > b; //true
a < b; //false
a >= b; //false
a <= b; //true
a == b; //false
a != b; //true
逻辑运算符
boolean a = true;
boolean b = false;
a &&
b = false;//都true则true,第⼀个条件为false就不会在看第⼆个条件,直接返回false
a ||
b = true;//⼀个条件为true则true,第⼀个条件为tre就不看第⼆个条件,直接返回true
! a = false;//取反
a &
b = false;//2个条件都要执⾏
a |
b = true;
三元运算符
int a = 5;
int b = 5;
a ==
b ? "等于":"不等于"; //为true返回第⼀个,为false返回第⼆个
流程控制语句
If语句
if语句就是判断条件是否成⽴,成⽴就执⾏if中的代码,不成⽴就不进⼊;
boolean flag = true;
if(flag){
System.out.println("...");
}
boolean flag = true;
if(flag){
System.out.println("成⽴");
}else{
System.out.println("不成⽴");
}
boolean flag = true;
boolean fail = false;
if(flag){
System.out.println("条件匹配");
}else if(fail){
System.out.println("条件匹配");
}else{
System.out.println("条件都不匹配");
}
switch条件控制语句
witch语句从JDK1.7开始可以⽀持匹配:String字符串;
注意事项:
每个case 后⾯必须跟⼀个数值常量或字符串常量⽤于匹配;
匹配的语句后⾯需要加上break关键字,防⽌case穿透;
String week = "星期⼀";
java switch case stringswitch(week){
case "星期⼀":
System.out.println("今天是星期⼀");
break;
case "星期⼆":
System.out.println("今天是星期⼆");
break;
case "星期三":
System.out.println("今天是星期⼆");
break;
default:
System.out.println("今天星期⼏都不是");
}
循环控制语句
for循环语句
for(初始值,条件表达式,更新)
for(int i = 1 ; i <= 10 ; i++){
System.out.println(i);
}
增强for循环
for(接收类型的变量,表达式)
int [] arrays = {1,2,3,4,5,6,7,8,9,10};
for(int i : arrays){
System.out.println(arrays);
}
while循环语句
while(条件表达式)
int number = 1;
while(number <= 100){
System.out.println(number);
number ++;
}
do{先把语句执⾏⼀遍}while(条件表达式);
boolean flag = true;
do{
System.out.println("先执⾏⼀遍");
flag = false;
}while(flag);
break和continue关键字
break关键字
结束循环的意思;
for(int i = 1; i <= 100; i++){
if(i == 10){
System.out.println("打印10后结束循环");
break;
}
}
continue关键字
跳过当前循环,进⼊下⼀次循环;
for(int i = 1 ; i <= 10; i ++){
if(i % 2 == 1){
continue;
}
System.out.println("打印:"+i);
}
⽅法
概述:
⽅法就相当于使⽤多⾏代码进⾏组合去实现的⼀个功能⽚段,对代码进⾏封装利⽤,可实现多次调⽤;
⽅法的定义
修饰符返回值⽅法名称(形参形参名称){⽅法体}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论