发表时间:2022-03-23来源:网络
本文章仅作为学习Alibaba Java 技术图谱的学习笔记,欢迎大家交流学习
java程序是需要经过两次处理后才可以正常执行的:
对愿代码程序进行编译:Java Hello.java,会出现又一个Hello.class的字节码文件,(利用JVM进行编译,编译出一套与平台无关的字节码文件(*.class)在JVM上进行程序的解释执行:Java hello (解释的就是字节码文件,字节码文件的后缀是不需要编写的)public class Hello{ public static void main(String[]args){ System.out.println("HelloWorld"); } }代码解释:
1.类
2.主方法
主方法是所有程序执行的起点,并且一定要在类之中。Java主方法定义:[public] class 类名称 { public static void main(string[] args) { 代码由此开始 } }3.屏幕打印(系统输出),有两类语法形式:
输出之后追加换行(ln(换行)) System.out.println(输出内容) 输出之后不换行 System.out.print(输出内容)注意:
在项目开发是,很少会出现一个*.java源代码里面定义有多个class 的情况,所以一般只有一个public class类就够了。Java在定义类名称时要求每一个单词首字母都要大写Shell是脚本程序的含义,很多编程语言为了方便使用者进行代码的开发,都会有Shell交互式编程环境。无论解决什么问题,Java都必须编写很多结构代码,但有时有时只是为了进行一些简短的程序验证,所以为了解决这个问题,Java提供有jshell指令,直接运行即可。除此之外,也可以将一些内容直接交由一些文件来进行保存
总结:使用Jshell的最大好处是只需要编写核心结构的代码即可,减少了对结构化的需求,使用“ / exit ”语句便可以退出交互式界面
当设置了CLASSPATH之后,这个时候在JAVA程序解释的时候会自动通过CLASSPATH所设置的路径进行类的加载,所以可以得出一个结论:JVM解释程序时需要得到CLASSPATH的支持,而CLASSPATH默认设置为当前所在目录加载类文件。
一般来说CLASSPATH应该采用默认设置方式,否则会造成系统混乱。
如何从当前所在路径加载类:
SET CLASSPATH=.面试题:path和CLASSPATH的区别?
path:是操作系统提供的路径配置,定义所有可执行文件的路径
ClASSPATH: 是由JRE提供的,用于定义JAVA程序解释时类加载路径,默认设置的为当前所在目录,通过“SET CLASSPATH=路径”的命令形式来进行定义。
关系
JVM------>CLASSPATH定义的路径------>加载字节码文件
JAVA中有三种注释方法:
单行注释://多行注释:/* ……*/文档注释:/**……*/ (文档里面注释里面还需要很多的选项,一般建议通过开发工具控制)如果在以后使用开发工具开发时,还是单行注释会方便些。而对于一些重要的类或者是方法都建议使用文档注释
对于结构的说明实际上就是标志符,是有命名要求的,一般都要求有意义的单词所组成,同时对标志符号的组成在JAVA中的定义如下:
由字母、数字、_、$组成,其中不能使用数字开头,不能使用JAVA的保留字(关键字)
一般最简单的定义形式:使用英文字母开头,例如:Student_Name
JAVA中对于数据类型一共分为两类:
基本数据类型:描述的是一些具体的数字单元,例如:1、2.1
数值型:引用数据类型:牵扯到内存关系的使用
重点有三种:数组、类、接口 —>默认值:null
对于选择何种数据类型的参考类型:
如果要是描述数字首选:int、double如果要进行数据传输或者进行文字编码转换使用byte类型(二进制)处理中文时候最方便的操作使用的是char描述内存或文件大小、描述表的主键列(自动增长)可以使用long整型数据一共有四种,按照保存范围由小到大:byte、short、int、long,java中整型常量都是int型(只要是整数就是int型数据)
任何数据类型都是有其可以保存的数据范围的(正常使用下很少会出现超出其范围),但超出后会发生什么呢?
int max=Integer.MAX+VALUE;//获取int最大值 int min=Integer.MIN_VALUE;//获取int最小值 system.outpritln(max); //2147483647 system.outpritln(min); //-2147483648 //int型变量+int型常量=int型计算结果 system.outpritln(max+1); //-2147483648, 最大值+1=最小值 system.outpritln(max+2); //-2147483647, 最大值+2=此最小值 //int型变量-int型常量=int型计算结果 system.outpritln(min-1_; //2147483647, 最小值-1=最大值通过执行代码可以发现,若数字在进行处理时如果超过类其最大的保存范围时,就会出现循环,在Java被叫做数据溢出。
解决数据溢出的方法:
注意不是必须的情况下,一般不进行类型转换
byte类型的范围为-128~127,若整型常量赋值给byte变量时,没有超过这个范围,其会自动转换,但对于变量则还是必须使用强制转换处理
浮点型数据描述的是小数,而在Java里面任意小数常量其对应的类型都是double
所有数据类型进行自动转型时都是由小类型向大类型进行自动转换
public class JavaDemo{ public static void main(String[]args){ float x=(float) 10.2; int y=10.1F; System.out.println(x*y); } }在任何编程语言,字符都可以与int进行互相转换,即字符中所描述的内容可以通过int获取其内容对应的系统编码。
public class JavaDemo{ public static void main(String[]args){ char c='A' int num=c System.out.println(num); } }注意
大写字母范围:A(65)~Z(90)小写字母范围:a(97)~z(122)“数字范围”:‘0’(48)~‘9’(57)与C语言不同,Java中的char 类型可以保存中文数据,原因是Java使用的是unicode这种十六进制,主要特点是可以包括任意的文字内容,使得程序开发更加简单
public class JavaDemo{ public static void main(String[]args){ char c='人' int num=c System.out.println(num); } }布尔描述的是一种逻辑的处理结果,在java中布尔类型的取值只有两个数据true、false,没有0和1这种表示方式。
public class JavaDemo{ public static void main(String[]args){ boolean flag=true; if(flag) { System.out.println('我很帅,很年轻'); } } }Java中使用的是String作为字符串的定义,由于string类较为特殊,所以可以像普通变量那样直接赋值的方式进行字符串定义,并且要求使用“”进行字符串描述
public class JavaDemo{ public static void main(String[]args){ String str="Hello World"; System.out.println(str); } }在进行字符串变量时也可以用"+"来进行字符串连接
public class JavaDemo{ public static void main(String[]args){ String str="Hello"; str=str+"World"; str+="!!!"; System.out.println(str); } }但需要考虑“+”有两种作用,一种是字符串的连接,另一个是数字相加。
public class JavaDemo{ public static void main(String[]args){ double x=10.1; int y=20; String str="计算结果"+x+y; System.out.println(str); } }执行后得不到我们想要的结果,原因是在Java中范围大的数据类型与范围小的数据类型进行计算时,所有范围小的数据类型自动转型为大的,但是有String字符串了,则所有的类型无条件变为String,如果有“+”则变为字符串的相加。
转义字符:tab(\t) 、" (\ ") 、’ ( \ ')、换行(\n)
运算符即对数字的处理
其实运算符优先级不需要去背,要用的时候懂得如何去查就好了,你只需要记住括号的优先级最高。
具体的可以参考Java运算符优先级排序
Java中数学运算都提供了标准的支持,包括四则运算。
在进行变量计算时,编程语言一般提供有简化的运算符(+=、*=、)
“++”或“–”用法:
++变量、–变量:先进性变量的自增或自减,而后再进行数字的计算变量++、变量–:线使用变量进行计算,而后在进行变量的自增与自减关系运算符主要特征就是进行大小的比较处理,包括:大于(>)、小于(=)、小于等于( char c='建' boolean flaga==24314==c; System.out.println(flag); } }
数据类型之间提供有转型支持,所以在进行判断时字符会自动转为int型
三目(赋值)运算符,是需要设置一个逻辑关系的判断之后才可以进行的赋值操作
public class JavaDemo{ public static void main(String[]args){ int x=20; int y=30; int max=x>y ? x:y; System.out.println(max); } }三目运算符也可以支持嵌套处理,但程序的可读性变得很差,根据实际情况确定
指的是进行二进制数据的计算处理,主要有:与(&)、或(|)、异或(^)、反码(~)、移位操作
面试题: 请解释&和&&、|和||的区别?
程序开发中一般会有三种程序逻辑,顺序结构,分支结构,循环结构
主要针对于关系表达式进行判断处理的分支操作。对于分支语句主要有三种使用形式,使用关键词:If、else
if(布尔表达式) { 条件满足时执行 } else if() { 条件满足时执行 } else { 条件不满足时执行 }switch是一个开关语句,主要是根据内容来进行的判断,需要注意的是switch中可以判断的是数据(int、char、枚举、string)
,而不能使用逻辑判断,语法如下
**注意:**如果你在每一个case后面没有追加break语句,则程序会一直运行到switch后续代码执行完毕或遇见break
有两种表达方式:
while(布尔表达式){ 条件满足时执行; 修改循环条件; } do { 条件满足时执行; 修改循环条件; }while(布尔表达式);while循环与do…while循环的最大区别:
while循环是判断后执行,而do…while先执行一次后判断呢。
对于while和for循环选择的参考标准:
明确确定循环次数,优先选择for循环不知道循环条件但是知道循环结束条件的情况使用while循环break和continue
break跳出循环,而continue结束当前循环
在一个循环语句中嵌套其他的循环语句就称为循环嵌套处理,循环嵌套层次越多,时间复杂度越高
例:乘法表
例:打印三角形
public class JavaDemo{ public static void main(String[]args){ int line=5; for(int x=0;x System.out.print(" "}; } for(int y=0;y //方法执行的代码 [return [返回值(基本数据类型、引用数据类型)]] }注意:
方法名称与变量的定义命名要求:进行方法名称定义时要求第一个单词的字母小写,而后每个单词首字母大写;进行变量定义时要求第一个单词的字母小写,而后每个单词首字母大写
定义:当方法名称相同时,参数的类型或个数不同时就成为方法重载
public class JavaDemo{ public static void main(string args[]) { int resultA=sum(10,20); int resultB=sum(10,20,30); double resultC=sum(10,20,30); System.out.println("假发执行结果: "+ resultA) System.out.println("假发执行结果: "+ resultB) System.out.println("假发执行结果: "+ resultC) } public static int sum(int x,int y) { return x+y; } public static int sum(int x,int y,int z) { return x+y+z; } public static int sum(double x,double y) { double x+y; } }注意:
方法重载与方法的返回值类型没有任何关系,只跟参数有关系,但一般定义方法返回值与参数的类型相同
递归调用即自己调用自己的情况。
一定要设置方法递归调用的结束条件每一次调用的过程一定要修改传递的参数条件。public class JavaDemo{ public static void main(string args[]) { System.out.println(sum(100)) } public static int sum(int num) { if(num==1) { return 1; } return num+sum(n-1); } }能看到这里都是真爱,觉得还不错的话点个赞呗,若有任何问题欢迎在评论区与我交流
下一篇:java编译器eclipse
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14