首页 > temp > JavaScript教程 >
-
浅薄的一些JAVA基础知识
JAVA基础语法
标识符与关键字
JAVA关键字基本列表:
abstract | assert | boolean | break | byte |
---|---|---|---|---|
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | goto | if | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | strictfp | short | static | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
关键字用于区分代码的类型,相当于代码的"名字" | ||||
而且文件取名不允许取名如上表所示的名字(包括方法之类的) | ||||
JAVA的所有组成部分都需要名字。类名,变量名以及方法名都会被称为"标识符" |
标识符的注意点:
- 所有的标识符都应该以字母(A-Z或者a-z),符号"$",或者下划线("_")开始
- 首字符之后可以是字母(A-Z或者a-z),符号"$",或者下划线("_"),或任何数字字符组合
- 不能使用关键字作为变量名或者方法名
- 标识符对于大小写是敏感的
- 合法例子:abc,$123,_hahah,__123_Abc
- 非法例子:13abc,%123,-#isyy
-
标识符的使用可以用中文名和拼音
例子:public class Demo1 { public static void main(String[] args) { String 碧蓝航线="我想捞到夕立啊啊啊"; System.out.print(碧蓝航线); } }
数据类型
图解:
JAVA的数据类型也分为强类型语言和弱类型语言
强类型:要求变量的使用严格按照规定,所有变量都需要定义后才能使用(例如C和JAVA等)
弱类型:与强类型相反(例如VB和JS)
基本类型的转换排序(从低到高):byte,short,char→int→long→float→double(可从低到高而不能从高到低,byte,short和char不能相互转换,而且int不能转换成前者任何一个)
强制转换类型也可以用(类型名)+balabala来进行转换,但是要注意精度丢失或者内存溢出。十分注意这种强制转换不能对布尔值(boolean)使用。通常用于高转低,不用于低转高
变量
- 含义:即为可以变化的量
- 因JAVA是一种强类型的语言,所以每个变量都需要声明才能够使用!!
- JAVA变量是程序中最基本的存储单元,其中拥有的要素有变量名,作用域和变量类型
-
例如:
public class Demo1 { public static void main(String[] args) { int hello=1314; //数据类型 变量名 = 值 int love,peace; //可以用逗号来隔开并声明多个变量 } }
-
注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一个完整的语句,因此每一个变量声明必须以分号来进行结尾
- "String"不是关键字,类
(额外话题)字节
- 字节分为:bit,byte(B),KB,MB,GB,TB
- 位(bit):是计算机内部数据存储的最小单位,由八位二进制组成
- 字节(byte):是计算机数据处理的基本单位,由八个bit组成,通常用大写B来表示
- 1B=8bit
- 区别:字符是指计算机使用的字母,数字,字和符号
-
关系:
- 1bit表示一位
- 1Byte表示一个字节
- 1024B=1KB
- 1024KB=1MB
- 1024MB=1GB
- 1024GB=1TB
电脑的32位操作系统和64位操作系统
- 含义:例如64位操作系统指的是它可以最多拥有128GB的寻址能力,而32位操作系统只有4GB
- 性质:64位的操作系统可以装32位操作系统使用的cpu,也可以装64位操作系统的cpu,而32位操作系统不能进行此操作,它只能装对应的32位操作系统需要的cpu(因为其关乎操作系统的寻址能力)
- 64位操作系统最多可以支持128GB的操作内存,但是32位操作系统只能支持4GB的操作内存(操作内存可理解成生活中装电脑用的内存条的大小)
JAVA支持以下运算符
- 算数运算符:+,-,*,/,%(模运算),++,--
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=(意为不等于)
- 逻辑运算符:&&(相当于数学中的交),||(相当于数学中的或),!(判断真假)
-
位运算符:&,|,^,~,>>,<<,>>>(了解即可)
基本用法(需要看二进制形式):
1.&是双目运算符。运算法则是:如果a、b两个操作数对应位都是1,则c的该位是1,否则是0。
2.|是双目运算符。运算法则是:如果a、b两个数据对应位都是0,则c的该位是0,否则是1。
3.~是单目“按位非”运算符。运算法则是:如果a对应位是0,则c的该位是1,否则是0。
4.^是双目“按位异或”运算符。运算法则是:如果a、b两个数据对应位相同,则c的该位是0,否则是1。
5. <<和>>表示二进制中向左向右移动位,左移后空缺的地方填0(高位丢弃,低位补零),右移后空缺的地方填1(低位丢弃,正数高位补0,负数高位补1)
6.>>>表示在二进制中无符号向右移动位,空缺的地方填0(高位补零,低位丢弃),这个>>>还有其他的一些小知识,日后补上!! - 条件运算符:?,:
-
三目运算符:
例:x?y:z
如果x==true,则结果为y,反之。(y与z进行比对)
Scanner的使用
使用Scanner需要有个声明:import java.util.Scanner
基本语法:
public class Demo01{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
}
}
在if...else...语句中,括号内如果想判断输入的数是否为整数,打出input.hasnextInt()即可
比较特殊的情况:String str=input.next()只能输出像"hello"这样不带空格的字符串,不然打入的字符串中如果含有空格,只会读取空格前的字符串。如果想输出如"Hello World"这种带空格的字符串,则需打出这种格式的Scanner:
String str=input.nextLine(),这样我们的Scanner读取Hello World的时候会连同空格一起读取,除非我们按了回车键。
注意:凡是属于IO流的类如果不关闭就会一直占用资源,最好就是用完就关,输入input.close()即可
结构
顺序结构
JAVA的语言输出会按照行的顺序来进行输出
虽然好理解,但是他是每个算法都离不开的一种算法结构
if结构
if结构有if....else...结构和if.....结构和if.......else if.......else结构
- if....else.....结构会先判断括号内关系式是否为真,如果为真就运行if里的内容,如果为假会运行else的内容
- if.....结构只会运行真的情况
- if....else if....else结构会先判断if内的关系式是否为真,若为真就会运行if内的程序,若为假就会运行下一个判断,即else if括号内的关系式,若为真就运行其内容程序,若为假就运行else后的内容(else if可叠加)
Switch结构
switch结构大概为:
switch(某个数)
{
case 某个数:
语句;
break;
case 某个数:
语句;
break;
default:
语句
}
若case语句后不加break会导致输出后续不加break的所有case语句,被称为"case穿透"
Switch是一种选择结构,从JDK7开始支持了字符串的类型
While,do....while和for循环结构
while和for的循环类似,但是两者语法不同
- for:语法为for(int i=0;i<=100;i++){程序内容}
- while:语法为while(i>0){程序内容},会判断括号内的语句是否为真,若为真则继续运行其程序内容
-
do....while:语法为do{程序内容}while(i>0),会先运行do后面的程序内容,之后会判断while后面的括号内容是否为真,若为真则继续运行do后面的程序内容
小代码:打印9*9乘法表:
public class Demo1 {
public static void main(String[] args) {
for(int i=1;i<=9;i++){ //用于行数的循环
for(int h=1;h<=i;h++){ //用于列数的循环
if(h==i){
System.out.println(h+"*"+i+"="+(h*i)+"\t");
}
else{
System.out.print(h+"*"+i+"="+(h*i)+"\t");
}
}
}
}
}
数组
一维数组
- 基本定义语法:类型+名字[];
-
数组的下标:指的是上面[]内的数字,即数组的范围,数组是从0开始计数的
例如我们定义一个整型数组i[3]={1,2,3,4}
那么i[0]=1,i[1]=2,i[2]=3,i[3]=4
二维数组
- 定义语法:类型+名字[][]
- 其作用类似于线性代数的矩阵
一些矩阵小知识:如果想输出[1,2,3,4,5]这样的数组,只要在System.out.print()括号内输入Arrays.toString(数组名)即可
方法
含义
-
Java的方法是语句的集合,他们在一起执行一个功能。
- 方法是解决一类问题的步骤的有序组合
- 方法包含于类或对象中
- 方法在程序中被创建,在其他地方被引用
- 设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展
定义
图解:
方法的重载
方法的重载与返回类型无关!!!
代码例子(int时):
import java.util.Scanner;
public class Demo1 {
//主函数
public static void main(String[] args) {
int max=max(10,20); //此时取的方法类型为int整型
System.out.println(max);
}
//比大小的函数
public static double max(double num1,double num2){
double result=0;
if(num1==num2){
System.out.println("num1==num2");
return 0; //终止其方法
}
if(num1>num2){
result=num1;
}
else{
result=num2;
}
return result;
}
//另一个比大小函数,名字相同但是类型不同
public static int max(int num1,int num2){
int result=0;
if(num1==num2){
System.out.println("num1==num2");
return 0; //同样的终止其方法
}
if(num1>num2){
result=num1;
}
else{
result=num2;
}
return result;
}
}
此时输出的结果为:
代码例子:
import java.util.Scanner;
public class Demo1 {
//主函数
public static void main(String[] args) {
double max=max(10,20); //此时取的方法类型为double整型
System.out.println(max);
}
//比大小的函数
public static double max(double num1,double num2){
double result=0;
if(num1==num2){
System.out.println("num1==num2");
return 0; //终止其方法
}
if(num1>num2){
result=num1;
}
else{
result=num2;
}
return result;
}
//另一个比大小函数,名字相同但是类型不同
public static int max(int num1,int num2){
int result=0;
if(num1==num2){
System.out.println("num1==num2");
return 0; //同样的终止其方法
}
if(num1>num2){
result=num1;
}
else{
result=num2;
}
return result;
}
}
输出结果:
方法的名字相同,但是调用的类型不同,输出的类型也同样不同,比如第二幅代码的例子,调用的时double类型方法,那么输出的一定是double类型的方法,这就是方法的重载。前提是两个方法的参数类型要不相同
-
重载比较官方的定义
- 重载就是在一个类中,有相同的函数名称,但是形参不同的函数。
-
方法重载的规则
- 方法的名称必须相同
- 参数列表必须不同(个数不同或类型不同,参数排列顺序不同等等.....)
- 方法的返回类型可以相同也可以不相同。
- 仅仅返回类型不同不足以成为方法的重载。
-
实现理论:
- 方法名称相同时,编译器会根据调用方法的参数个数,参数类型等去逐个匹配,宜选择对应的方法,如果匹配失败,则编译器会报错。
- 出 处:https://www.cnblogs.com/starocean/p/14562117.html