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类型的方法,这就是方法的重载。前提是两个方法的参数类型要不相同
- 重载比较官方的定义
- 重载就是在一个类中,有相同的函数名称,但是形参不同的函数。
- 方法重载的规则
- 方法的名称必须相同
- 参数列表必须不同(个数不同或类型不同,参数排列顺序不同等等.....)
- 方法的返回类型可以相同也可以不相同。
- 仅仅返回类型不同不足以成为方法的重载。
- 实现理论:
- 方法名称相同时,编译器会根据调用方法的参数个数,参数类型等去逐个匹配,宜选择对应的方法,如果匹配失败,则编译器会报错。
此时我的JAVA基础语法知识已经分享完毕,这个随笔既作为我的一个笔记,也可以成为看的人的一个小帮助,感谢阅读~
原文转载:http://www.shaoqun.com/a/642725.html
垂直电商: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
没有评论:
发表评论