Java语言小白学习之路(有一定C语言的基础)

本文介绍了Java基础,包括CMD操作计算机、环境变量设置、JAVA语法、编译与运行、HelloWorld示例、常见问题、数据类型、数组、方法、内存分配模型以及进阶概念。
摘要由CSDN通过智能技术生成

一.JAVA基础

前要:

1.利用windows中的CMD来操作计算机(使用图形化界面操作计算机,但是消耗内存,运行内存比较慢,所以使用CMD(命令行)来操作计算机)。

首先需要调出CMD的界面窗口:WIN+R键实现,在TEXT栏中输入cmd,并且按下回车键得到黑色小窗口。

常用的CMD指令:盘符名称+冒号,指切换盘符,举例:E:回车,表示切换到E盘。

 dir,查看当前路径下的内容

cd目录,进入单级目录,举例:cd itheima

Cd..,表示回退到上一级目录。

Cd 目录1\目录2\....,进入多级目录,举例:cd itheima\JAVASE

Cd \ ,回退到盘符目录。

Cls 清屏

exit,退出命令提示符窗口

将某些文件直接打开则需要将该文件的路径记录在环境变量中,方便之后直接打开。

环境变量的位置:
打开“我的电脑”,右键,点击属性,点击高级系统设置,再点击高级,点击环境变量,双击较下方的PATH,添加新的路径。

想要在任意的目录中打开某些文件,将其路径记录在环境变量中。

开始入门:

JAVA基础语法:
刚开始需要安装JAVA环境,安装完Java环境之后,打开JDK,打开BIN,将java.exe的路径添加到环境变量之中,之后再创建新的文件夹用于创建JAVA文件并且撰写JAVA代码。

如何编译写完的代码呢?

打开CMD界面,使用CD指令到达JAVA代码文件所在文件夹的位置,先使用javac ******.java编译代码。

再使用java ******.java运行代码。

举例的java代码:

public class HelloWorld{

Public static void main(String[] args){

System.out.println("HelloWorld");

}

}

注意包含代码的文档名称要和第一行的class后面的名称相同。

{

HelloWorld案例常见问题:

需要识别BUG,分析BUG,解决BUG(需要后天培养)。

1.所有的标点符号必须是英文输入法状态下的标点符号。

2.在代码中该大写就大写,该小写就小写。

3.在遇到错误时,运行后的CMD界面会提示问题所在行。

在写JAVA代码时推荐使用VSCODE或者NOTEPAD++来进行编写,方便后续编写和修改BUG。

(后面推荐使用IDEA来进行编写)

【Java可以做什么】

{

Java se,Java语言的标准版,用于桌面应用的开发,是其他两个版本的基础。

桌面应用:用户只需要打开程序,程序的界面还会让用户在最短的时间内找到他们所需要的版本,同时带领用户完成他们的工作并且得到最好的体验。

目前学习java是为了今后要从事的java EE打基础。

Java Me,用于嵌入式电子设备或者小型移动设备。

Java EE,java语言的企业版,用于Web方向的网站开发。

}

【java跨平台的特性】

目前的高级语言如果需要被机器识别运行需要经历三个步骤:编程-编译-运行

有三种实现这三个步骤的类型:编译型,解释型,混合型。

C/C++是标准的编译型语言,先将代码整体的翻译为二进制文件,再交给不同的设备进行运行,但是不同的设备会出现硬件/系统兼容问题,就需要在每个设备重新编译一次。

python是标准的解释型语言,将代码逐行的解释成二进制代码再运行,一行一行编译运行。

java是混合型语言,先编译成为.class二进制字节码文件,再将文件在虚拟机中运行,保证在任何一部设备都能成功运行。

Javac 调试工具

Java 运行工具

Jdb 调试工具

Jhat 内存分析工具

}

继java基础语法:
为了识别代码作用,要勤注释。

注释方法和其他高级语言的注释方法相同。注释内容不会影响代码的运行产生影响。

//。。。。。。

/*。。。。*/

关键字,和C语言的定义相同,指在该高级语言中某些具有特定意义的变量名。

字面量:
整数类型 不带小数点的数字

小数类型 带小数点的数字

字符串类型 用双引号括起来的内容

字符类型 用单引号括起来的内容

布尔类型 布尔值,表示真假

空类型 一个特殊的值,表示空值

代码举例:
 

扩展点,特殊字符:
\t   制表符

在打印时,把前面字符串的长度补齐到8,或者8的整数倍。最少补一个空格,最多补8个空格。

例:

变量:

在程序的执行过程中,其值有可能改变的量。(实际上是申请了一块内存,内存的大小取决于申请的变量的数据类型)

变量的定义格式:
数据类型 变量名 = 数据值;(变量名不可与任一关键字一样)。

整数类型:int

浮点数类型(实数类型):double

字符类型:char

例:

变量的使用方式:
与C/C++的使用方式相同。

变量的注意事项:

变量只能存一个值;

变量名不允许重复定义;

一条语句可以同时定义多个变量;

例:int a = 1 , b = 2 , c = 3;

变量在使用前一定要进行赋值;

变量的作用域范围;

关于数据类型:

基本数据类型:

整数 byte -128~127

Short -32768~32767

Int -2147483648~2147483647

Long 太长了不写了反正是-2^63~2^63-1;

浮点数 float 单精度浮点数

             double 双精度浮点数

字符 char

布尔 true false

定义的变量的值超范围会出错。

标识符的命名规则:
由数字,字母,下划线和美元符$组成。

不能以数字开头,不能是关键字,区分大小写。

java的键盘录入:
java帮我们写好了一个类叫Scanner,这个类就可以接受键盘输入的数字。
个人感觉有点像在C语言中的include <stdio.h>那样。

步骤1:导包:

代码:import java.util.Scanner;

步骤2:创建对象

代码:Scanner sc = new Scanner(System.in);sc为变量名,可变。

步骤3:接收数据

代码: int I = sc.nextInt();左边的格式中只有I可以变。

正如C语言中scanf的用处。

IDEA项目结构介绍:
project(项目)->module(模块)->package(包)->class(类)。(从大到小)。

当然也可以不选择使用IDEA软件,也可以选择其他的可供选择的编程软件。

Java算术运算符:
定义:对字面量或者变量进行操作的符号。

表达式:用运算符把字面量或者变量连接起来,符合java语法的式子就可以称为表达式。

目前的六种运算符:
算术运算符

+,-,*,/,%(取模)。

关于整数或者浮点数使用这五种算术运算符基本上都是基本的数学算术。

字符串中的“+”操作:
当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算符了。会将前后的数据进行拼接并产生一个新的字符串。

连续进行“+”操作时,从左到右逐个执行。

例子:1+99+“年”= 》”100年黑马“
自增自减运算符

++,--,用法和C相同。

++a和a++之间的区别也和C语言中的区别也一样。

赋值运算符

=,+=,-=,*=,/=,%=与C语言用法相同。
关系运算符

>,<,<=,>=,用法和C语言相同
逻辑运算符

&,|,^,!,分别是与,或,异或和取非。

&&,||分别是短路与,短路或。用法和C语言相同。
三元运算符

?:和C语言的用法相同。

java的流程控制语句:
顺序结构

按照代码的先后顺序,从上到下按照顺序执行。(最简单,也符合基本直觉)

分支结构

IF语句:
格式:

if(关系表达式){

语句体;

}

或者出现其他可能的结果:
if(关系表达式){

语句体1;

}else{

语句体2;

}

或者

If(关系表达式1){

语句体1;

}else if(关系表达式2)

{

语句体2;

}

else{

语句体3;

}

其中else if可以一直叠加。

关系表达式的值为0则不运行,其他值则运行。

switch语句:
格式:
switch(表达式){

case 值1:

语句体;

break;

case 值2:

语句体;

break;

case 值3:

语句体;

break;

default:

语句体;

break;

}

表达式的值决定执行哪个分支语句。如果不加break;会继续往下执行下一个分支语句。

循环结构:
for循环;

while循环;

do……while循环

这些循环的使用方法和C语言的相同。

可以看出和C的用法基本相同。

练习案例:

回文数:

给你一个整数,如果是回文数则打印true,否则打印false。

无限循环代码,是不健康的代码,会让机器无法结束运行,无限循环下面的代码永远运行不到。那么如果代码用得到无限循环函数,那么就需要将无限循环代码放在代码的最末端。

无限循环一般会搭配跳转控制语句进行执行,用于跳出循环。

类似于C语言的思想。

求平方根:

java的数组:
 

用于存储同种数据类型的多个值。

数组的定义:
格式1:
数据类型 [] 数组名

例:int [] array

格式2:

数据类型 数组名[]

例:int array[]

数组的初始化:
1.静态初始化:数据类型 [] 数组名 = new 数据类型[] {元素1,元素2,元素3,……..};

简化类型:数据类型 []数组名 = {元素1,元素2,元素3};

如果已经学过C语言,可以发现和C语言的语法十分类似。

array后面的[i]指的是array数组中的数据的相对地址。第一个数据的相对地址为[0];

2.动态初始化:
数据类型[] 数组名 = new int[number];number为数组的人为规定长度。

如果没有给数组中的数据赋值,那么整数类型默认为0

小数类型默认为0.0,字符类型默认为空格,布尔类型默认为false,引用数据类型,默认初始值为 null。

数组名存储的是整体数组的初始地址,数组的数据是被存储在了堆中,通过调用数组名的地址并且加上相对地址*数据类型长度,就可以得到数组数据的绝对地址。

java的方法:

什么是方法?
方法是程序中最小的执行单元。

方法可以说是在C语言中的调用函数过程。

只需要反复调用一个函数就可以输出几次相同的结果,或者反复利用被调用函数。

java中方法的格式:
将一些代码打包在一起,在需要的时候就调用。

1.如何打包代码(java)

格式:

Public static 返回值类型 方法名(参数){

方法体;

return 返回值;

}

可以看出和C语言中的调用基本相同。相比C语言中的方法,java中也只是多了public static。

2.如何调用方法(java)

在main方法中调用该方法。

例:

可以看到反复调用了Hello方法。

至于参数,就参考C语言中参数的使用,以下是实例:
 

方法的使用和C语言中的函数调用的使用基本无异,除了各别领域的关键字不同,其他的使用方法基本相同。

使用方法的注意事项:

方法不调用就不执行。

方法与方法之间是平级关系,不能互相嵌套定义。

方法的编写顺序和执行顺序无关。

方法的返回值类型是void,表示该方法没有返回值,

没有返回值的方法可以省略return语句不写。

如果要编写return,后面不能跟具体的数据。

return语句下面,不能编写代码,因为永远执行不到。

方法的重载:
两个方法如果在同一个类中,并且方法名相同,参数不同则构成重载。

重载是与C语言部分不同的部分。重载中的方法名能控制在同一个作用但是能保证参数不同,而C语言中调用函数如果参数不同,则需要再创建一个新的函数和新的函数名保证成功运行。

代码练习:
定义一个方法copyOfRange(int [] arr,int from,int to)

功能:将数组arr中从索引from(包含from)开始,到索引to(包含to)结束的元素复制到新的数组中,将新的数组返回。

java内存分配:
栈:方法运行时使用的内存,方法进栈运行,运行完毕就出栈。

堆:new出来的,都在堆内存中开辟了一个小空间。

方法区:存储可以运行的class文件。

本地方法栈:JVM在使用操作系统功能的时候使用。

寄存器:给CPU使用。

基本上代码都是在方法中撰写的,那么方法先进栈,如果方法内部new了,那么new的数据将会在堆中开辟一块新的小空间用于保存new的数据,而在栈中保存的是堆的数据的地址。

引用数据类型类似于C语言中的指针模块。

二.JAVA进阶

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未神码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值