前言
我认为编程语言学习不适合速成,除非个人只想成为一个写代码的机器,所以不论如何都应该学习基础知识,就好像很多编程学习前都会先学习c语言,c语言就好像是引路人一样,让你认识什么是机器语言。(接下来的叙述将进行在有一点点机器语言的基础上)
目录
1. 基本数据类型
在认识基本数据类型之前我们先简单认识一下计算机存储单元:
1B(字节) = 8bit
1KB = 1024 B
1MB = 1024 KB
1GB = 1024 MB
1B = 1024 GB
在计算机中不论是内存还是硬盘,其最小的信息单元叫“位”,又叫比特位(bit),而计算机最基本的存储单元叫字节(byte),用大写字母B表示。
1.1 Java中的基本数据类型
从分类的角度:
数据类型 | 基本数据类型 | 整数(byte,short,int,long) | ||||
浮点数(float , double) | ||||||
字符(char) | ||||||
布尔(boolean){true ,false 只有这两个数据} | ||||||
引用数据类型 | 类、接口、数组 |
补充说明一个常用类型:字符串类型 String ,这是一个引用类型,也是一个类。
关键字详细信息
数据类型 关键字 内存占用 取值范围
整数类型 byte 1 -128~127
short 2 -32768~32767
int 4 -2的31次方到2的31次方-1
long 8 -2的63次方到2的63次方-1
浮点类型 float 4 负数:-3.402823E+38到-1.401298E-45
正数: 1.401298E-45到 3.402823E+38
double 8 负数:-1.797693E+308到-4.9000000E-324
正数:4.9000000E-324 到1.797693E+308
字符类型 char 2 0-65535
说明: e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。在java中整数默认是int类型,浮点数默认是double类型。
2. 运算符
符号 | 类别 | 说明 | 符号 | 类别 | 说明 |
+ | 算数运算符 | 加法 | & / && | 逻辑运算符 | 与/短路与 |
- | 算数运算符 | 减法 | | / || | 逻辑运算符 | 或/短路或 |
* | 算数运算符 | 乘法 | > | 关系运算符 | 大于 |
/ | 算数运算符 | 除法 | < | 关系运算符 | 小于 |
% | 算数运算符 | 取余数 | == | 关系运算符 | 判断是否相等,是为true,否为false |
= | 赋值运算符 | 赋值操作 | != | 关系运算符 | 判断是否不等于,是为true,否为false |
以上的运算符号并不全,还省略了大于等于,小于等于等常见的,还有移位运算符等等,不过对于初学这些会更为重要一点,其他的符号更多应题目相结合学习更适合。
3.注释
单行注释:在编辑器中以 “// ”来表示后面为本行代码注释,例:
int a = 10; // 定义一个变量a,将10赋值给a
多行注释:下方代码进行了两行注释,然后还多写了一行单行注释。
/*
* 定义一个变量b,赋值为12,并进行b+1运算。
*/
int b = 12;
b++; //与b=b+1结果相同,写法不同
注释的作用是为了让程序员自己更清楚下面要进行什么,避免代码过多思绪混乱,也可以增强代码的可读性,让别人能简单读懂。
4. 基本语法
这里涉及到的就是Java这种语言的说话方式,我将从最简单的直接表达到复杂表达进行解释。
4.1 变量的声明
public class HelloWorld { //第一行
public static void main(String[] args) { //第二行
int b = 12; //声明变量,并初始化
char a = 0;
b++;
System.out.println("================="); //换行打印
System.out.print(b+"a"); //不换行打印
}
}
上面这段代码我将分行讲解
第一行:这是建立一个主类,可以理解为一个你必须要做的一件事。
第二行:这是建立一个main函数,也可以称为主函数,也是你必须要做的事。
这是一种语法的规范,可以认为是模板。
int b = 12; //声明变量,并初始化
char a = 0;
这两行是对变量的声明,声明变量要初始化,初始化可以理解为对变量进行赋值。声明和赋值这两步在这个写法上是不可分割的。
4.2. 如何进行算数运算
public class HelloWorld { //第一行
public static void main(String[] args) { //第二行
int b = 12; //声明变量,并初始化
int a = 1;
int c = a+b;
int C1 = a*b;
int C2 = b/a;
System.out.println(c); //换行打印
System.out.print(C1);//不换行打印
}
}
我们看出我们在上面代码进行了加、乘、除,3种运算,我都是定义一个变量,然后把运算的值赋值给这个变量,这个做的目的是为了后面的打印,我们先来看一下这段代码的结果。
这是上面代码运行的结果,如果我们不声明变量接收运算的值,只单独写运算,编译器器也会进行运算,不过后面的代码就要改变一下,将运算语句写入打印语句里面,如下。
public class HelloWorld { //第一行
public static void main(String[] args) { //第二行
int b = 12; //声明变量,并初始化
int a = 1;
System.out.println(b/a);
}
}
4.3. 条件判断语句
4.3.1 if语句
if( boolean类型语句){要执行的语句体 }
if(同上){语句体} else{语句体}
if(同上){语句体} else if(boolean类型语句){语句体} else if(boolean类型语句){语句体}.......else if(boolean类型语句){语句体} else{语句体}
以上3种就是if判断执行语句的语法,看如下用法:
public class HelloWorld {
public static void main(String[] args) {
int b = 2;
int a = 1;
int c = 100;
/*
第一种的if语句
*/
if (b > a) {
System.out.println("a比b大");
}
System.out.println("==================");
/*第二种if语句*/
if (a < b) {
System.out.println("a的值是" + a);
} else {
System.out.println("b的值是" + b);
}
System.out.println("===================");
/*
第三种if语句
*/
if (b - a == 0) {
System.out.println(a);
} else if (b - a == 1) {
System.out.println(b + a);
} else {
System.out.println("你好");
}
}
}
上述代码按顺序实现了三种语句,我们初学可能会感觉这种判断语句不是一眼就能来看出答案吗,那干嘛不直接写关键代码,我们对于简单的判断当然可以直接判断,但编译器无法直接判断,编译器需要通过比较,才能执行,而且当条件很难是我们无法看出结果,编译器通过比较却可以,因此才会出现这样的代码规范。对于这种语句的学习经常敲代码才是熟悉的途径。好,让我们来看一下,运行结果。
4.3.2 switch语句
switch(表达式){
case 1 :
语句体1;
break;
case 2 :
语句体2;
break;
........
default:
语句体n;
break;
}
我将写一个关于判断生肖的代码,用month代表月份然后用switch语句判断属相。
public class HelloWorld {
public static void main(String[] args) {
int month = 5;
switch (month){
case 1:
System.out.println("属虎");
break;
case 2:
System.out.println("属兔");
break;
case 3:
System.out.println("属龙");
break;
case 4:
System.out.println("属蛇");
break;
case 5:
System.out.println("属马");
break;
case 6:
System.out.println("属羊");
break;
case 7:
System.out.println("属猴");
break;
case 8:
System.out.println("属鸡");
break;
case 9:
System.out.println("属狗");
break;
case 10:
System.out.println("属猪");
break;
case 11:
System.out.println("属鼠");
break;
case 12:
System.out.println("属牛");
break;
default:
System.out.println("输入错误");
}
}
}
switch 的表达式可以值也可以字符等,按类型说可以byte,short, int ,char, 也可以是枚举(和列举一个意思),也可以是String.
break:表示结束,表示中断,结束当前语句,不结束会继续执行。
default:很明显是所有条件都不符合就执行该语句体。
4.4. 循环语句体
4.4.1 for循环语句
for(初始化语句,判断语句,条件控制语句){
循环体语句;
}
我将switch语句放到for循环中,然后根据month的变化执行不同值得switch语句。
public class HelloWorld {
public static void main(String[] args) {
int month = 0;
for (month = 0; month < 13; month++) {
switch (month) {
case 1:
System.out.print(" 属虎");
break;
case 2:
System.out.print(" 属兔");
break;
case 3:
System.out.print(" 属龙");
break;
case 4:
System.out.print(" 属蛇");
break;
case 5:
System.out.print(" 属马");
break;
case 6:
System.out.print(" 属羊");
break;
case 7:
System.out.print(" 属猴");
break;
case 8:
System.out.print(" 属鸡");
break;
case 9:
System.out.print(" 属狗");
break;
case 10:
System.out.print(" 属猪");
break;
case 11:
System.out.print(" 属鼠");
break;
case 12:
System.out.print(" 属牛");
break;
default:
System.out.print(" 输入错误");
}
}
}
}
运行结果如下,我将打印语句改成了不换行打印,并每次打印添加了空格,就形成下面的运行结果。for循环语句使用比较频繁,是基础语句中的常用语句。
4.4.2 while循环语句
while(条件判断语句){
循环语句体;
条件控制语句;
}
while的执行是先判断,符合就执行语句提,然后执行条件控制语句,然后在判断是否符合,如此循环;直到不符合条件结束循环。
public class HelloWorld {
public static void main(String[] args) {
int i = 5;
while (i >= 0) {
System.out.print( " "+i );
i--;
}
}
}
代码执行结果如下:
4.4.3 do ..... while 循环语句
初始化语句;
do{
循环语句;
条件控制语句;
}while(条件判断语句);
这个循环体和while循环语句相似,不同的是do ......while 是先执行在判断,而while循环是先判断在执行。这个循环不在此演示了,始终要灌输的观念是多敲代码,这个循环留个你自己试试吧。
5. Scanner类获取用户输入
1.导包:
import java .util. Scanner;
2.创建Scanner对象
Scanner sc = new Scanner(System.in); //这个操作为创建类对象,sc 变量名 ,具体后面会学习到,此处记住就可
3.接收数据
int c = sc.nextInt(); //用c 来接收键盘输入的值;这里是int 类型既只能接收int类型整数,要接收其他数据需要改变语句,其他可见jdk手册
public class HelloWorld {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字");
int c = sc.nextInt();
while (c >= 0) {
System.out.print( " "+c );
c--;
}
}
}
运行结果:
好了,Java基础我就介绍到此,还有很多很多的操作与语法我没有可能没有概述完全,菜鸟出道,希望大家批评指正!后续还会在学习空闲之余更新博客,争取早日向大佬靠拢。