2021-03-26

浅薄的一些JAVA基础知识

JAVA基础语法

标识符与关键字

JAVA关键字基本列表:

abstractassertbooleanbreakbyte
casecatchcharclassconst
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile

关键字用于区分代码的类型,相当于代码的"名字"
而且文件取名不允许取名如上表所示的名字(包括方法之类的)
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;  //可以用逗号来隔开并声明多个变量 }}
  • 注意事项:
    1. 每个变量都有类型,类型可以是基本类型,也可以是引用类型
    2. 变量名必须是合法的标识符
    3. 变量声明是一个完整的语句,因此每一个变量声明必须以分号来进行结尾
  • "String"不是关键字,类

(额外话题)字节

  • 字节分为:bit,byte(B),KB,MB,GB,TB
  • 位(bit):是计算机内部数据存储的最小单位,由八位二进制组成
  • 字节(byte):是计算机数据处理的基本单位,由八个bit组成,通常用大写B来表示
  • 1B=8bit
  • 区别:字符是指计算机使用的字母,数字,字和符号
  • 关系:
    1. 1bit表示一位
    2. 1Byte表示一个字节
    3. 1024B=1KB
    4. 1024KB=1MB
    5. 1024MB=1GB
    6. 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类型的方法,这就是方法的重载。前提是两个方法的参数类型要不相同

  • 重载比较官方的定义
    • 重载就是在一个类中,有相同的函数名称,但是形参不同的函数。
  • 方法重载的规则
    • 方法的名称必须相同
    • 参数列表必须不同(个数不同或类型不同,参数排列顺序不同等等.....)
    • 方法的返回类型可以相同也可以不相同。
    • 仅仅返回类型不同不足以成为方法的重载。
  • 实现理论:
    • 方法名称相同时,编译器会根据调用方法的参数个数,参数类型等去逐个匹配,宜选择对应的方法,如果匹配失败,则编译器会报错。

此时我的JAVA基础语法知识已经分享完毕,这个随笔既作为我的一个笔记,也可以成为看的人的一个小帮助,感谢阅读~









原文转载:http://www.shaoqun.com/a/642725.html

跨境电商:https://www.ikjzd.com/

垂直电商:https://www.ikjzd.com/w/1450

联动优势:https://www.ikjzd.com/w/1921


JAVA基础语法标识符与关键字JAVA关键字基本列表:abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelseenumextendsfinalfinallyfloatforgotoifimplementsimportinstanceofintinterfacelongnativenewpacka
勤商网:https://www.ikjzd.com/w/2219
DMM:https://www.ikjzd.com/w/2026
olive:https://www.ikjzd.com/w/2025
亚马逊FBA如何补货?怎么有效管理亚马逊FBA库存?:https://www.ikjzd.com/home/101114
亚马逊卖家备战黑五网一,你可能需要提前考虑这些售后问题:https://www.ikjzd.com/home/110681
干货|亚马逊关键词的排名原理:https://www.ikjzd.com/home/132219

No comments:

Post a Comment