Java教程

Java基础

本文主要是介绍Java基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java基础

  • 第一章 Java开发入门
    • 1.1 Java概述
      • Java语言特点
    • 1.2JDK的使用
    • 1.3JDK的目录介绍
    • 1.4命令窗口下编译运行java文件
    • 1.5环境变量的配置
      • path环境变量
      • classpath 环境变量
    • 1.5 Java的运行机制
    • 1.6包的定义和使用
  • 第二章 Java编程基础
    • 2.1基础语法
    • 2.2Java中的注释
    • 2.3 java中的标识符
    • 2.4关键字
    • 2.5变量
      • 2.51数据类型
      • 2.52 变量的类型转换
      • 2.53作用域
      • 2.54运算符
      • 2.55 运算符的优先级
    • 2.6 结构语句
      • 循环结构
    • 2.7 方法
      • 2.71 方法声明
      • 2.72 方法的重载
    • 2.8 数组

第一章 Java开发入门

1.1 Java概述

Java语言特点

1.简单性 没有C++中很难理解的运算符重载、多重继承等模糊概念,不是使用指针而是使用的引用,提供了自动的垃圾回收机制。

2.面向对象 提供类、接口继承原语,只支撑类的单继承,但支撑接口之间的多继承,并支持类与接口之间的实现机制。Java语言全面支持动态绑定【https://blog.csdn.net/weixin_39842271/article/details/114162438】。

3.安全性 不支持指针,一切对内存的访问都必须通过对象的实例变量实现,应用更安全。

4.跨平台性 同一段程序既可以在Windows操作系统上运行,也可以在Linux操作系统上运行。

5.多线程 程序中多个任务可以并发执行。

1.2JDK的使用

SUN公司提供的一套开发环境,简称JDK(Java Development Kit),它是整个Java的核心,包括Java编译器、Java运行工具、Java文档生成工具、Java打包工具等。
除了JDK,还提供了一种JRE (Java Runtime Environment)工具,它是Java运行环境,提供给普通用户使用。运行实现编写好的程序。JRE中只包含Java运行工具,不包含Java编译工具。JDK自带JRE。

1.3JDK的目录介绍

bin目录 存放可执行程序,javac.exe(Java编译器) java.exe(Java运行工具)jar.exe(打包工具)javadoc.exe(文档生成工具)

db目录 db目录是一个小型的数据库。纯Java实现、开源的数据库管理系统。,不需额外安装一个数据库软件,直接使用 JavaDB即可。

jre目录 java程序运行时环境,此目录是java运行时环境的根目录,包含java虚拟机、运行时的类包、java应用启动器以及一个bin目录,不包含开发环境的开发工具。

include目录 JDK是通过C和C++实现的,启动时需要引入一些C语言的头文件,该目录就是存放这些文件的

lib目录 lib是library的缩写,意为Java类库或库文件,是开发工具使用的归档包文件。

src.zip src文件的压缩文件,src中放置的是JDK核心类的源代码,通过该文件可查看Java基础类的源代码。

1.4命令窗口下编译运行java文件

cmd ->

jdk的bin目录 ->

编译 javac 文件名 javac helloworld.java

运行 java java helloworld

脚下留心:
编译时可能会出现 “找不到文件”错误 文件扩展名被隐藏了

1.5环境变量的配置

path环境变量

path环境变量是系统环境变量中的一种,用于保存一系列的路径,每个路径之间以分号分隔。当在命令行窗口运行一个可执行文件时,操作系统首先会在当前目录下查找该文件是否存在,如果不存在,会继续在path环境变量中定义的路径下寻找这个文件,如果仍未找到,系统会报错。
set path 命令可以查看系统变量

设置环境变量 -------------------------------- set path=%path%; c:…\bin
这种变量的设置只对当前窗口有效

Windows系统属性中的环境变量
计算机–》 属性–》系统–》高级系统设置–》高级–》环境变量–》
变量名 path ------------------------------------------------变量值 路径

classpath 环境变量

classpath环境变量也用于保存一系列路径,它与path环境变量的查看与配置的方式完全相同。当Java虚拟机需要运行一个类时,会在classpath环境变量中所定义的路径下寻找所需的class文件和类包。

java helloworld 不设置classpath会报错

set classpath=%classpath%; 路径
如果classpath环境变量没有进行设置 java虚拟机会自动将其设置为 “.” 也就是当前目录

1.5 Java的运行机制

Java程序运行,需要经过编译和运行两个步骤。
将.java的源文件进行编译,生成.class的字节码文件。然后java虚拟机将字节码文件进行解释执行。
Java程序是虚拟机负责解释执行,而并非操作系统。这样做的好处是实现java程序的跨平台。不同的操作系统安装不同版本的java虚拟机就可以运行相同的java程序。
注意:java程序跨平台,虚拟机不是跨平台的,不同的操作系统要安装不同版本的虚拟机。

1.6包的定义和使用

目的是将类进行管理。

包的声明必须放在第一行
package …;声明包

当一个包中的类需要调用另一个包的类时,需要使用import关键字,这样就不用了书写完整类名了。
import 包名.*; 导入包下所有类
import 包名.类名;

Java扩展的大部分类放在javax包及其子包下。

常用包
java.util 大量工具、集合类,例如Arrays List Set
java.net 包含java网络编程的类和接口
java.io 包含java输入、输出有关类和接口
java.awt 包含构建图形界面(GUI)的相关类和接口
java.sql 数据库编程
javax.swing 编写GUI

JDK中所有的包构成了java类库

第二章 Java编程基础

2.1基础语法

基本格式
修饰符 class 类名 {
程序代码
}

  • 结构定义语句 、功能执行语句。结构定义语句用于声明一个类或者方法,功能执行语句用户实现具体的功能。 功能执行语句最后用;(英文)结束
  • 严格区分大小写
  • 排版要整齐
  • 一句连续的字符串不能分开在两行,要用“+”串起来。

2.2Java中的注释

注释是对程序的某个功能或者某行代码的解释说明,只在java原文件中有效,编译程序时,编译器会忽略这些注释信息,不会将其编译到class字节码文件中去。

  • 单行注释
    int c=10; //定义一个变量
  • 多行注释
/*
        int a=10;
        int c=10;
 */
  • 文档注释
/**
 * 
 * 文档注释内容
 * 
 */

文档注释对代码概括性的解释说明,可以使用javadoc命令将文档注释提取出来生成
帮助文档。

2.3 java中的标识符

包名、类名、方法名、变量名、参数名等,标识符可以由字母、数字、下划线(_)、美元符号($),但标识符不能以数字开头,不能是java中的关键字。

标识符定义的规范

  • 包名所有字母一律小写。
  • 类名接口名每个单词首字母大写。
  • 常量名所有字母大写,单词之间用下划线连接。
  • 变量名和方法名的第一个单词首字母小写,第二个单词开始首字母大写。
  • 尽量使用有意义的英文单词定义标识符。

2.4关键字

abstract continue for new switch assert default goto package synchronized
boolean do if private this break double implements protected throw byte else import
public throws case enum instanceof return transient catch extends int short try char
final interface static void class finally long strictfp volatile const float native super while

const和goto是保留关键字,虽然在java中没有任何意义,程序中不能作为自定义标识符

2.5变量

2.51数据类型

程序运行期间可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元被称为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。

  • 基本数据类型
    数值型 (byte,short,int,long) 浮点类型 (float,double)
    字符型 (char) 布尔型(boolean)
  • 引用数据类型
    类(class) 接口(interface)数组 枚举 (enum)注解(annotation)

基本数据类型是java内嵌的,在任何操作系统中都具有相同大小和属性。
引用数据类型是在Java程序中由编程人员自己定义的变量类型。

整型变量
byte 8位 — short 16位 — int 32位 — long 64位 加L

浮点数变量
float 32位 加f ------------------- double 64位 加d

字符类型变量
每个char类型字符变量都会占用两个字节,英文半角格式的单引号 ’ '把字符括起来
char c=‘a’;

布尔类型变量
boolean flag=flase; -------- flag=true;

2.52 变量的类型转换

  • 自动类型转换
    条件 1.数据类型兼容 2.目标类型的取值范围大于源类型的取值范围。
    a.整数之间实现转换 b.整数类型转换为float类型 c.其他类型转换为double类型
  • 强制类型转换(显式类型转换)
    条件1.两种类型不兼容 2.目标类型取值范围小于源类型
int num=4;
byte a=(int)num;
  • 表达式类型自动提示
byte b1=3;
byt2 b2=4;
byte b3=(int)b1+b2;//b1 b2相加时被自动转换为int类型,所以要再进行强转给b3赋值

2.53作用域

变量一定会被定义在某一对大括号中,该大括号所包含的代码区域便是这个变量的作用域。

2.54运算符

  • 算术运算符
    1.++或–在左边先进行自增或自减,++或–在右边先进行其他运算。
    2.除法运算,除数被除数都是整数,结果也是整数floor。有小数参与的时候结果会是一个小数。
    3.在进行取模(%)运算时,运算结果的正负取决于被模数(%)左边的符号
    如 (-5)%3=-2 而5%(-3)=2
  • 赋值运算符
    = -= += *= /= %=
    1.可以通过一条赋值语句对多个变量赋值
  • 比较运算符
    == != < > <= >=
  • 逻辑运算符
    逻辑运算符对布尔型的数据操作,结果仍是布尔型数据
    &与 |或 ^异或 !非 &&短路与 ||短路或
    1.逻辑运算符可以针对结果为布尔值的表达式进行运算。
    2.运算符&和&&都表示与操作,当且仅当运算符两边的操作数都为true时,结果才为true,否则为false。&运算时,两边的表达式都运算后再出结果,&&运算时如果左边表达式为假,右边表达式不计算直接出结果,所以被称为短路与。
    3.运算符| 和 || 与上述运算符同理。

2.55 运算符的优先级

   /**
     * 1.   . [] ()
     * 2.   ++ -- ~ !
     * 3.   * / %
     * 4.   + - 
     * 5.   << >>   >>>
     * 6.   < >  <= >=
     * 7.  ==  !=
     * 8.  &
     * 9.  ^
     * 10. |
     * 11. &&
     * 12. ||
     * 13. ?:
     * 14. = *= /= %= += -= <<= >>=  >>>= &= ^= |=
     */ 

2.6 结构语句

循环结构

while(条件){
代码逻辑
}
do{
代码逻辑
}while(条件);
for(初始化表达式;条件;操作表达式){
代码逻辑
}

跳转语句

break;    //跳出整个循环语句
//当出现在switch条件语句,作用是终止某个case并跳出switch结构
continue; //终止本次循环,执行下一次循环

2.7 方法

方法就是一段可以重复执行的代码。有些书中也会把方法称为函数,这两者本身并没有什么区别,同样的概念,只是称呼方式不一样。

2.71 方法声明

//如果方法不需要参数 参数列表可以为空()
修饰符 返回值类型 方法名([参数类型 参数名1,参数类型 参数名2,......]){
执行语句
...
return 返回值;
}
  • 修饰符 static final private public default等
  • 限定方法返回值的数据类型
  • 限定调用方法时传入参数的数据类型
  • return关键字 结束方法以及返回方法指定类型的值
  • 被return语句返回的值 该值会返回给调用者

2.72 方法的重载

Java允许一个程序中定义多个名称相同的方法,但是参数类型或个数必须不同,这就是方法的重载。通过传入不同的参数可以确定调用哪个重载的方法。方法的重载与返回值类型无关!

//方法1
public  int add(int a,int b){
    return a+b;
}

//方法2
public int add(int a,int b,int c){
    return a+b+c;
}

//方法3
public float add(float a,float b){
    return a+b;
}

@Test
void test1(){
add(1,2);  //调用方法1
add(1,2,3);  //调用方法2
add(1.1f,1.2f);  //调用方法3
}

2.8 数组

  • 定义
//定义1
int[] arr=new int[100];   //可以存放100int类型的变量

//定于2
int[] arr2;
arr2=new int[100]; 
  • 初始化
//初始化1
int[] arr=new int[]{1,2,3};
//初始化2
int[] arr2={1,2,3,4};
  • 元素的访问
//  数组名[索引];   表示数组中指定索引的变量
//索引的范围  [0,length-1]
System.out.println(arr[1]);
  • 多维数组

其他维度的数组同理

//二维数组 

//声明
int[][] arr;
arr=new int[100][100];

int[][] arr2=new int[100][100];
//初始化
int[][] arr3=new int[][]{{1,2,3},{4,5,6}};
int[][] arr4={{1,2,3},{4,5,6}};

//访问
System.out.println(arr[1][2]);
这篇关于Java基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!