JavaSE入门

基于Java开发了许多平台,系统,工具

  • 构建工具:Ant,Maven,Jekins
  • 应用服务器:Tomcat,Jetty,Jboss,Websphere,weblogic
  • Web开发:Struts,Spring,Hibernate,myBatis
  • 开发工具:Eclipse,Netbean,intellij,idea,Jbuilder

JDK、JRE、JVM

  • JDK : Java Development Kit ——Java开发者工具
  • JRE : Java Runtime Environment ——Java运行时环境
  • JVM : Java Virtual Machine ——Java虚拟机

卸载JDK

  1. 删除Java的安装目录

在这里插入图片描述
在这里插入图片描述

  1. 删除JAVA_HOME
  2. 删除path下关于Java的目录
  3. 打开cmd 查看java -version是否找不到命令

安装JDK

  1. 百度搜索JDK8,找到下载地址

  2. 同意协议

  3. 下载电脑对应版本

  4. 双击安装JDK

  5. 记住安装路径

  6. 配置环境变量

    1. 我的电脑–>右键–>属性

    2. 环境变量–>JAVA_HOME

      在这里插入图片描述

    3. 配置path变量

  7. 测试JDK是否安装成功

    1. 打开cmd

    2. 输入命令java -version

    在这里插入图片描述

notepad++

HelloWorld

  1. 随便建立一个文件夹,存放代码

  2. 新建一个java文件

    1. 文件后缀名为.java
    2. Hello.java
    3. [注意点]系统可能没有显示文件后缀名,我们需要手动打开
  3. 编写代码

public class Hello{
	public static void main(String[] args){
		System.out.print("Hello,World!");
	}
}
  1. 编译javac java文件,会生成一个class文件

  2. 运行class文件,java class文件

Java数据类型

强类型语言

  • 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用(安全性强,速度慢)

弱类型语言

Java数据类型分为两大类型

  • 基本类型(primitive type)

    数据类型 数值类型 byte占1个字节范围 -128~127

    ​ short占2个字节范围 32768~32767

    ​ int占4个字节范围 -2147483648~2147483647

    ​ long占8个字节范围**(后面加L)**-9223372036854775808~9223372036854775807

    ​ 浮点类型 float占4个字节 (后面加F,有限 离散型 舍入误差 大约 接近但不等于)

    ​ double占8个字节

    ​ 字符类型char占2个字节

    Boolean类型:占1位其值只有true和false

  • 引用类型(reference type)

    接口

    数组

在这里插入图片描述


在这里插入图片描述

在这里插入图片描述


类型转换

由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换

​ 低 --------------------------------------------------------------------------- 高

​ byte,short,char->int->long->float->double

运算中,不同类型的数据先转化为同一类型,然后在进行运算。

  • 强制类型转换
  • 自动类型转换

在这里插入图片描述
在这里插入图片描述

变量

Java是一种强类型语言,每个变量都必须声明其类型。

Java变量是 程序中最基本的储存单元,其要素包括变量名,变量类型和作用域。

注意事项:

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  • 变量名必须是合法标识符。
  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。

在这里插入图片描述

常量

常量(Constant):初始化(initialize)后不能再改变值,不会变动的值。

所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

final 常量名 =;
final double PI = 3.14 ;

常量名一般使用大写字符。

运算符

//Ctrl+D 复制当前行到下一行
  • 关系运算符返回的结果:正确 错误 布尔值

  • 自增自减

    int b = a++;   //执行完这行代码后,先给b赋值,再自增
    int c = ++a;   //执行完这行代码前,先自增,再给c赋值
    
  • 逻辑运算符

    • 与(and)或(or)非(取反)

在这里插入图片描述

  • 条件运算符 ?:
    在这里插入图片描述

JavaDoc

javaDoc官网

Java流程控制

Scanner对象

  • java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。

  • 基本语法

    Scanner  a = new Scanner(System.in);
    
  • 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有需要输入的数据。

  • next()

    • 一定要读取到有效字符后才可以结束输入
    • 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
    • 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
    • next()不能得到带有空格的字符串
  • nextLine()

    • 以Enter为结束符也就是说nextLine()方法返回的是输入回车之前的所有字符。
    • 可以获得空白。

顺序结构

  • java基本结构就是顺序结构,除非特别指明,否则就按顺序一句一句执行。
  • 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。

选择结构

  • if单选泽结构

    • 语法

      if(布尔表达式){

      ​ //如果布尔表达式为true将执行的语句

      }

  • if双选择结构

    • if(布尔表达式){

      ​ //如果布尔表达式为true

      }else{

      ​ //如果布尔值表达式为false

      }

在这里插入图片描述

switch多选择结构

  • 多选择结构还有一个实现方式就是switch case语句
  • switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

在这里插入图片描述

for循环结构

关于for循环有以下几点说明:

  • 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
  • 然后,检测布尔表达式的值。如果为true,循环体被执行,如果为false,循环终止,开始执行循环体后面的语句。
  • 执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)。
  • 再次检测布尔表达式,循环执行上面的过程。

for循环的快捷键 —— .for

print 输出完不会换行

println 输出完会换行

break continue

  • break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)
  • continue语句用在循环语句体中,用于终止某次循环的过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
    • //break在任何循环语句的主体部分,均可用break控制循环的流程。
    • //break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)
    • continue语句用在循环语句体中,用于终止某次循环的过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

方法的定义

  • Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法:

  • 方法包含一个方法头和一个方法体。下面是一个方法的所有部分:

    • 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。

    • 返回值类型:方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需要的操作,但没有返回值。在这种情况下,returnValueType是关键字void。

    • 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。

    • 参数类型:参数像是一个占位符。当方法被调用时,传递至给参数,这个值被称为实参或变量。参数列表市值方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含仍和参数。

      • 形式参数:在方法被调用时用于接受外界输入的数据。
      • 实参:调用方法时实际传给方法的数据。
    • 方法体:方法体包含具体的语句,定义该方法的功能。
      在这里插入图片描述

方法的重载

重载就是在一个类中,有相同的函数名称,但形参不同的函数。

方法的重载的规则:

  • 方法名称必须相同。
  • 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)。
  • 方法的返回类型可以相同也可以不相同。
  • 仅仅返回类型不同不足以成为方法的重载。

命令行传参

在这里插入图片描述

可变参数

  • JDK1.5开始,java支持给一个方法传递同类型的可变参数。
  • 在方法声明中,在指定参数类型后加一个省略号(……)。
  • 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。

递归

递归结构包含两个部分:

  • 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
  • 递归体:什么时候需要调用自身方法。

数组

数组的声明创建

  • 首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:
dataType[] arrayRefVar;  //首选的方法
dataType arrayRefVar[];  //效果相同,但不是首选方法
  • Java语言使用new操作符来创建数组,语法如下:
dataType[] arrayRefVar = new arrayRefVar[arraySize];
  • 数组的元素是通过索引来访问的,数组索引从0开始。
  • 获取数组的长度:——arrays.length

内存分析

Java内存分析
在这里插入图片描述

java.lang.ArrayIndexOutOfBoundsException//数组下标越界异常

三种初始化状态

  • 静态初始化
int[] a = {1,2,3};
Man[] mans = {new Man(1,1),new Man(2,2)};
  • 动态初始化
int[] a = new int[2];
a[0] = 1;
a[1] = 2;
  • 数组的默认初始化

    数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中每个元素也被按照实例变量相同的方式被隐式初始化。

在这里插入图片描述

数组的四个基本特点

  • 其长度是确定的,数组一旦被创建,它的大小就是不可以改变的。
  • 其元素必须是相同类型,不允许出现混合类型。
  • 数组中的元素可以是任何数据类型,包括基本类型和引用类型。
  • 数组变量属引用类型向,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。

Arrays类

数组的工具类java.util.Arrays

由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本操作。

Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而”不用“使用对象来调用(注意:是”不用“而不是”不能“)

具有以下常用功能:

  • 给数组赋值:通过fill方法。
  • 给数组排序:通过sort方法,按升序。
  • 比较数组:通过equals方法比较数组中元素值 是否相等。
  • 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。

稀疏数组的介绍

二维数组的长度

//定义一个整型数组:3行4列 
int a[][] = new int[3][4]; 

//获取行数---3行 
int lenY = a.length;

//获取列数---4列 
int lenX = a[0].length;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值