Java基础语法

Java—基础语法

1. Java概述

  • Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
  • 应用领域:Java语言主要应用在互联网程序的开发领域。常见的互联网程序比如天猫、京东、物流系统、网银系统等,以及服务器后台处理大数据的存储、查询、数据挖掘等也有很多应用。

2. 基本概念

JVM,JRE与JDK

  • JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境,是Java 最具吸引力的特性之一。Java语言的跨平台特性是由JVM实现的。
  • JRE (Java Runtime Environment) :是Java程序的运行时环境,包含JVM 和运行时所需要的核心类库。
  • JDK (Java Development Kit):是Java程序开发工具包,提供了 java 的开发环境和运行环境。
  • 具体来说 JDK 其实包含了 JRE,同时还包含了 java 程序编译、打包、调试和分析的工具。
    简单来说:如果你需要运行 java 程序,只需安装 JRE 就可以了,如果你需要编写 java 程序,需要安装 JDK。

JVM

3. 数据类型

Java的数据类型分为两大类:

  • 基本数据类型:包括整数、浮点数、字符、布尔。
  • 引用数据类型:包括类、数组、接口。

每种编程语言都有自己操作内存中元素的方式,例如在 C 和 C++ 里是通过指针,而在 Java 中则是通过“引用”。
在 Java 中一切都被视为了对象,但是我们操作的标识符实际上是对象的一个引用(reference)。

基本类型

四类八种基本数据类型:

数据类型关键字内存占用取值范围
字节型byte1个字节-128~127
短整型short2个字节-32768~32767
整型int(默认)4个字节-2的31次方~2的31次方-1
长整型long8个字节-2的63次方~2的63次方-1
单精度浮点数float4个字节1.4013E-45~3.4028E+38
双精度浮点数double(默认)2个字节4.9E-324~1.7977E+308
字符型char2个字节0-65535
布尔类型boolean1个字节true,false

定义所有基本数据类型的变量,代码如下:

//定义字节型变量
byte b = 100;

//定义短整型变量
short s = 1000;

//定义整型变量
int i = 123456;

//定义长整型变量
long l = 12345678900L;

//定义单精度浮点型变量
float f = 5.5F;

//定义双精度浮点型变量
double d = 8.5;

//定义布尔型变量
boolean bool = false;

//定义字符型变量
char c = 'A';

类型转换

  • 自动类型转换

当运算符两边出现不一致的类型时,会自动转换成较大的类型。

byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double

  • 强制类型转换
double a = 1.0;
double b = 2,0
int i = (int)(a/b);
// 强制类型转换的优先级高于四则运算
  • 注意:浮点转成整数,直接取消小数点,可能造成数据损失精度。int 强制转成short 砍掉2个字节,可能造成数据丢失。

运算符

  • 算术运算符

    • 自增自减运算:++--
    • + 符号在遇到字符串的时候,表示连接、拼接的含义
  • 赋值运算符:=

  • 比较运算符

Java语言提供6种关系运算符(> < <= >= == != )

  • 逻辑运算符
运算符描述
逻辑非
&&逻辑与
||逻辑或
  • 条件运算符(三元运算符)
count = (count>20)? cout-10: count

//等价于

if( cout>20 )
    count = count-10;
else
    count = count+10;

数组

数组概念:数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。

  • 定义数组
// 默认数组内元素值为0
int[] arr = new int[3];               // 动态初始化(指定长度)
int[] arr = new int[]{1,2,3,4,5};  // 静态初始化(指定内容)
int[] arr = {1,2,3,4,5};               // 省略的静态初始化

// 左侧的中括号:代表是一个数组
// 右侧的new:代表创建数组的动作
  • 访问数组:数组名[索引]
    tips: 直接打印数组名称,返回的是哈希地址值

  • 基本操作

public class Array {
    public static void main(String[] args) {
        int[] arr = { 1, 2, 3, 4, 5 };
        System.out.println("数组:");
        printArray(arr);
        System.out.println("最大值:" + getMax(arr));
        arr = reverseArray(arr);
        System.out.println("逆序:");
        printArray(arr);
    }

    // 数组遍历输出
    public static void printArray(int[] arr) {
        for(int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
    // 找数组最大值
    public  static int getMax(int[] arr) {
        int max = 0;
        for(int i = 0; i < arr.length; i++) {
            if(max < arr[i]) {
                max = arr[i];
            }
        }
        return max;
    }

    // 数组反转
    public static int[] reverseArray(int[] arr) {
        for (int i = 0; i < arr.length/2; i++) {
            int tmp = arr[i];
            arr[i] = arr[arr.length-1-i];
            arr[arr.length-1-i] = tmp;
        }
        return arr;
    }
}

3. 语法结构

  • 顺序结构(略)
  • 选择结构
    • If语句
    • switch语句
  • 循环结构
    • while语句
    • do-while语句
    • for语句
    • Break语句用于跳出循环,continue用于结束本次循环。

选择语句

//C提供了三种形式的if语句
if( flag ) { 
    // statement 
}

if( a != 1) { 
    // statement 1 
}else {
    // statement 2
}

if( a ==1 ) { 
    // statement 1 
}
else if( a == 2) {
    // statement 2}else {
    // statement n
}
int i;

Switch( i )
{
case 1// expression 1
     break;
case 2// expression 2
    break;case n:
    // expression n
    break;
    
default:
    // expression n+1
    break;
}

循环语句

while( ture )
{
    // while语句先判断表达式后执行语句
}

do{
    // do-while语句先执行语句后判断表达式
} while ( true )

for( i=0; i<10; i++ )
{
    if( i==2 )
    {
        continue;
    }
    
    if( i==4 )
    {
        break;
    }
}

4. 程序结构

我们在学习运算符的时候,都为每个运算符单独的创建一个新的类和main方法,我们会发现这样编写代码非常的繁琐,而且重复的代码过多。能否避免这些重复的代码呢,就需要使用方法来实现。

  • 方法:就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。
    当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象。

方法

  • main方法:称为主方法。写法是固定格式不可以更改。main方法是程序的入口点或起始点,无论我们编写多少程序,JVM在运行的时候,都会从main方法这里开始执行。
public static void main(String[] args) {
    //调用定义的方法method
    method();
}
//定义方法,被main方法调用
public static void method() {
    System.out.println("自己定义的方法,需要被main调用运行");
}

方法重载

  • 方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。
  • 参数列表:个数不同,数据类型不同,顺序不同。
  • 重载方法调用:JVM通过方法的参数列表,调用不同的方法。
public class MethodOverload {
    public static void main(String[] args) {
        myPrint(100);
        myPrint("Hello");
    }
    
    // 方法重载
    // 模拟输出语句中的println 方法效果,传递什么类型的数据就输出什么类型的数据
    public static void myPrint(byte num){System.out.println(num);}
    public static void myPrint(short num){System.out.println(num);}
    public static void myPrint(int num){System.out.println(num);}
    public static void myPrint(long num){System.out.println(num);}
    public static void myPrint(float num){System.out.println(num);}
    public static void myPrint(double num){System.out.println(num);}
    public static void myPrint(char c){System.out.println(c);}
    public static void myPrint(boolean is){System.out.println(is);}
    public static void myPrint(String str){System.out.println(str);}
}

数组与方法

  • 数组作为参数
  • 数组作为返回值,可以返回多个值
public class ArrayReturn {

    public static void main(String[] args) {
        int[] result = calculate(10, 20, 30);
    
        System.out.println("总和:" + result[0]);
        System.out.println("平均数:" + result[1]);
    }
    
    public static int[] calculate(int a, int b, int c) {
        int sum = a + b + c; // 总和
        int avg = sum / 3; // 平均数

        int[] array = { sum, avg };
        return array;
    }
}

5. JDK环境安装

Java环境安装,JDK+IDE就够了,这里说JDK的安装

  1. 下载JDK压缩包
  2. 配置环境变量
    • 设置JAVA_HOME
      解压jdk的目录
    • 设置CLASSPATH
      .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
    • 在path中加入两个新的配置
      %JAVA_HOME%\bin
      %JAVA_HOME%\jre\bin

tips:用压缩包的形式可以,多版本切换,配只需要修改环境变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值