400-616-5551

您所在位置: 首页> 学习课程> Java数据结构 | 新手教程,建议收藏!

Java数据结构 | 新手教程,建议收藏!

发布百知教育 来源:学习课程 2019-09-24

如果你不懂Java数据结构 并且想认真学习接触了解一下Java的语法,建议把这篇文章收藏了,多看几遍,应该可以初步掌握Java 大部分基础的语法 。


编程环境:


工程项目推荐使用IDEA.


入门学习推荐使用jupyter notebook.

安装jupyter notebook的java插件 IJava 的方法如下:

1,下载Java JDK >= 9.建议12

2,下载ijava-1.3.0.zip,并解压。

3,进入解压后目录,运行 python3 install.py --sys-prefix。



java数据结构

 

一,算数运算


java数据结构

java数据结构



二,输入输出


输入:System.in, java.io.InputStreamReader, java.util.Scanner

输出:System.out.println,  System.out.printf,  System.out.print

读文件:java.io.FileInputStream

写文件:java.io.FileOutputStream


1,输入


Scanner扫描输入,遇到\n结束。

BufferedReader.read() 逐字符读取。

BufferedReader.readLine() 逐行读取。


java数据结构


10.png


java培训


2,输出


print不换行,println换行,printf格式化输出。


java数据结构


3,读文件


14.png


4,写文件


15.png

三,导入Package

java有以下一些导入包的方式:

1,导入包中某个对象:import java.text.SimpleDateFormat

2,导入包中全部对象: import java.util.*

3,导入包中的静态字段和方法(较少使用): import static java.lang.System.*

4,默认导入: java默认导入了java.lang.* 


java数据结构

20.png


四,语法规则

1,标识符


标识符由字母和数字组成,遵循驼峰命名规则。

类的名称以大写字母开头。

方法的名称以小写字母开头。

变量的名称以小写字母开头。


java数据结构


2,注释


单行注释用//开头。

多行注释用/*开头,以*/结尾。


特殊多行注释,以/**开头,以*/结束,如果有多行,每行通常以星号开头。

这种特殊的多行注释需要写在类和方法的定义处,可以用于自动创建文档。


java数据结构


3,数据类型


Java 的数据类型有两大类,基本数据类型和引用数据类型。


基本数据类型相对非常底层,基本类型相同值的对象占有同样的存储单元,判断是否相等可以用 ==。


引用数据类型本质上都是Class,相对抽象,引用类型相同值的对象占用不同的存储单元,判断是否相等应该用 equals方法。


基本数据类型包括:整型(byte,short,int,long),浮点型(float,double),布尔类型(boolean),字符类型(char)


引用数据类型包括:包装类型(Integer,Double,Char,Boolean,……),字符串(String),数组(Array),以及各种容器类(List,Map,Set,Queue)。


用户自定义的任何Class都可以看成是一种引用数据类型。


4,变量声明


java数据结构


5,标点符号


Java 中常用的标点符号用法总结如下


()表示优先级或者函数参数列表

[]用于索引或数组声明

{}用于作用域

<>用于泛型

* 用于import包时的通配符

@用于注解


五,编译执行


1,程序结构


一个.java程序文件中必须有且只有一个public类,该类必须有一个声明为main函数作为程序入口。


并且这个main函数需要声明为 public static void 类型,即静态的,公开的,返回值为空的函数类型。


并且这个java程序的文件名必须和这个public类名保持一致。


java培训


将以上代码拷贝到文本文件中,命名为 Main.java。


2,编译执行


Java是一种解释型语言,其java源码需要被编译成class字节码运行在Java虚拟机上。


因此,执行Java程序分两步:


(1),使用javac编译命令将以.java结束的程序文件编译成以class结尾的字节码程序文件。


javac Main.java 编译后得到 Main.class文件


(2),使用java 命令运行字节码程序。


java -classpath ./ Main 在JVM上执行Main.class文件


java数据结构


编译时,按下面的顺序依次查找类:


(1)查找当前package是否存在这个class;

(2)查找import的包是否包含这个class;

(3)查找java.lang包是否包含这个class。


如果按照上面的规则还无法确定类名,则编译报错。


3,classpath和jar包


(1) classpath 


classpath是JVM用到的一个环境变量,它用来指示JVM如何搜索class。

它其实就是一组目录的集合,它设置的搜索路径与操作系统相关。


例如,在Windows系统上,用;分隔,可能长这样。

C:\work\project1\bin;C:\shared;"D:\My Documents\project1\bin"


在Linux系统上,用:分隔,可能长这样。

/usr/shared:/usr/local/bin:/home/liaoxuefeng/bin


如果JVM在某个路径下找到了对应的class文件,就不再往后继续搜索。如果所有路径下都没有找到,就报错。


classpath的设定方法有两种:

在系统环境变量中设置classpath环境变量,不推荐;

在启动JVM时设置classpath变量,推荐。


我们强烈不推荐在系统环境变量中设置classpath,那样会污染整个系统环境。在启动JVM时设置classpath才是推荐的做法。实际上就是给java命令传入-classpath或-cp参数:


java -classpath .;C:\work\project1\bin;C:\shared abc.xyz.Hello


但通常classpath这个参数不需要配置,其默认值为当前目录 ./一般就够用了。


(2) jar包


设想一下,如果有很多.class文件,散落在各层目录中,肯定不便于管理。

如果能把目录打一个包,变成一个文件,就方便多了。


jar包就是用来干这个事的,它可以把package组织的目录层级,以及各个目录下的所有文件(包括.class文件和其他文件)都打成一个jar文件,这样一来,无论是备份,还是发给客户,就简单多了。


jar包实际上就是一个zip格式的压缩文件,而jar包相当于目录。如果我们要执行一个jar包的class,就可以把jar包放到classpath中:


java -cp ./hello.jar abc.xyz.Hello


jar包还可以包含一个特殊的/META-INF/MANIFEST.MF文件,MANIFEST.MF是纯文本,可以指定Main-Class和其它信息。JVM会自动读取这个MANIFEST.MF文件。如果存在Main-Class,我们就不必在命令行指定启动的类名,而是用更方便的命令:


java -jar hello.jar


jar包还可以包含其它jar包,这个时候,就需要在MANIFEST.MF文件里配置classpath了


4,maven项目管理工具


实际项目开发中,通常使用maven管理项目,并打成jar包。

maven使用POM文件POM.xml指定项目的依赖和打包方式。

maven安装后,将会在本地创建~/.m2/repository目录,集中存放jar包作为本地仓库。


maven搜索并载入依赖的顺序如下:本地仓库->私人远程仓库->中央仓库


常见的maven 命令如下:

mvn clean          清理编译打包输出

mvn compile      项目编译

mvn package     项目打包

mvn install          安装到本地仓库


六,Java数据结构概述


Java中常用的数据结构主要包括字符串(String),数组(Array),枚举(enum), 以及java.util中的各种容器类(通常被称做集合)。


java.util中的这些容器类分成两大类,一类是实现了Collection接口,另外一类实现了Map接口。


容器类中常用的数据结构包括:列表(List),映射(Map),集合(Set),队列(Quene),堆栈(Stack)。


当然这些数据结构也都是接口,通过API封装了特定的功能,下面还会有多种不同的实现。


可以用统一的Iterator方式对大多数容器类进行遍历,这种更加抽象的方式优于使用下标的方式进行遍历。


java数据结构


七,字符串String


Java 中的字符串和Scala中的字符串来源于同一个包,java.lang.String,两者具有完全相同的方法。


八,数组Array

Java 中的数组和 C++中的数组很像,其长度是不可变的,但是数组中的元素内容是可以改变的。


数组是引用类型,一般是用花括号{}作为数组范围标识。


java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。


1,创建Array


java数据结构


2,Array的常用操作


九,列表List

Java中的列表List是一种有序数据结构的接口。


它有两种实现,一种是ArrayList,另外一种是LinkedList。前者是顺序存储,方便查询和修改特定元素。后者是链表存储,方便插入和删除元素。通常情况下我们使用ArrayList更多一些。


和数组Array不同,List的大小是可以改变的。


List的主要方法如下:(E是元素 e的类型)

在末尾添加一个元素:void add(E e)

在指定索引添加一个元素:void add(int index, E e)

删除指定索引的元素:int remove(int index)

删除某个元素:int remove(Object e)

获取指定索引的元素:E get(int index)

获取列表大小(包含元素的个数):int size()


1,创建List


11.png


2,List常用操作


36.png

37.png


部分内容来自微信公众号程序IT圈

上一篇:百知IT学校太原理工学员参加园区“祖国颂”歌会活动回顾

下一篇:应届生去公司找个Java程序员的职位需要什么技能?

相关推荐

关闭

立即申请

www.baizhiedu.com