Java基础知识点

背景

Java 1995诞生sum -> oracle(2009)
核心基础Java SE--面向对象,API,JVM
              Java EE -- JSP,EJB,服务
              Java ME -- 移动设备,游戏,通信

jvm(java virtual machine)
源文件.java  ->  comoiler(编译器)  ->  字节码文件.class  ->  interpreter(解释器)  ->  my program
新鲜的鱼 -> 菜刀处理 -> 鱼块 -> 锅烹饪 -> 红烧鱼

JDK(java development kit)Java开发工具包
JRE(java runtime environment)Java运行时环境

JDK > JRE >JVM 

java中关键字

常用的关键字(严格区分大小写):

abstractbooleanbreakbytecasecatchcharclass
continuedefaultdodoubleelseextendsfalsefinal
finallyfloatforifimplementsimportinstanceofint
interfacelongnativenewnullpackageprivateprotected
publicreturnshortstaticsuperswitchsynchronizedthis
throwthrowstransienttruetryvoidvolatilewhile

标识符

用于给java程序中变量、类、方法等命名的符号
标识符可以由字母、数字、下划线、美元符组成,不可以包含其他特殊字符,不能数字开头,不能是关键字,严格区分大小写,要有很好的语义化

变量

java中通过三元素描述变量:变量类型、变量名、变量值

String love = "bert";

优秀的变量命名规范
驼峰命名法:第一个单词首字母小写,其后单词首字母大写

数据类型

变量的存储讲究"分门别类"
java语言是一种强类型语言,在编译时就需要确定变量的类型,一共有两种数据类型:基本数据类型&引用数据类型
基本数据类型(存储的是数据的本身):整数型(byte,short,int,long)浮点型(float,double)字符型(char)布尔型(boolean)
引用数据类型(存储数据的空间地址):类(class)接口(interface)数组

变量的使用规则

  • 先申明再使用
  • 申明变量时可以一并初始化,也可以后赋值
  • 变量中每次只能赋一个值,但可以多次修改
  • main方法中的变量输出前必须先赋值

自动类型转换

不同的基本数据类型之间可以相互转换,但这是需要一定条件的。
目标类型和源类型兼容,double兼容int,char不兼容int。
目标类型大于源类型,这比较的是类型长度,double类型的变量就可以存放int类型的数据
常用的数据类型长度

  1. 整型int,4字节
  2. 双精度浮点型double,8字节
  3. 单精度浮点型float,4字节
  4. 字符型char,2字节
  5. 布尔型boolean,1字节

强制类型转换

将double类型变量值赋给int类型变量

double num1 = 99.9;
int num2 = (int)num1;
System.out.println(num2); //99

强制类型转换可能会导致数据的丢失。

常量

常量在程序运行时不允许被更改,常量名使用大写字符。

java获取用户输入的值

使用Scanner工具类来获取输入的值
Scanner类位于java.util包中,使用时需要导入此包
步骤:

  1. 导入java.util.Scanner
  2. 创建Scanner对象
  3. 接收并保存用户输入的值

数组 

java中操作数组只需四个步骤:
1 申明数组
  数据类型[] 数组名;
  数据类型 数组名[];

int[] scores;    //存储学生成绩的数组,类型为整型
double height[]; //存储学生身高的数组,类型为浮点型
String[] names; //存储学生姓名的数组,类型为字符串

2 分配空间
  指定数组中最多可存储多少个元素。

 scores = new int[5];
  height = new double[5];
  names = new String[5];

1,2合并 声明同时分配空间 

int[] scores = new int[5];

3 赋值
 分配空间之后就可以在其中存放数据了。

scores[0]=100;
scores[1]=99;

4 处理数组中的数据

System.out.println("score数组中第九个元素的值:"+scores[8]);

java中还提供了另外一种直接创建数组的方式,它将声明数组、分配空间和赋值合并完成。

int[] scores = {100,99,98,97,96};

等价于:

int[] scores = new int[]{100,99,98,97,96};

这里new之后的[]必须为空,不能指定长度。

Arrays类操作java中数组

Arrays类由java.util包中提供,这个类包含了一些方法用来直接操作数组。
Arrays中常用的方法:
1 排序
Arrays.sort(数组名);
可以使用 sort( ) 方法实现对数组的排序,只要将数组名放在 sort( ) 方法的括号中,就可以完成对该数组的排序(按升序排列)。

前提是需要import java.util.Arrays;

2 将数组转换为字符串
Arrays.toString(数组名);

import java.util.Arrays;
public class Test{
    public static void main(String[] args){
        // 定义一个字符串数组
        String[] hobbies = { "sports", "game", "movie" };
        // 使用Arrays类的sort()方法对数组进行排序
        Arrays.sort(hobbies);
        // 使用Arrays类的toString()方法将数组转换为字符串并输出
        System.out.println(Arrays.toString(hobbies));
    }
}

foreach操作数组

foreach不是java中关键字,只是for语句的特殊简化版本。
语法:
for(元素类型 元素变量:遍历对象){
    执行的代码;
}

举个栗子

public class Test{
    public static void main(String[] args){
        int[] nums={1,2,3};
        System.out.println("***使用for循环遍历数组***");
        for(int i=0; i<nums.length; i++){
            System.out.println(nums[i]);
        }
        System.out.println("***使用foreach循环遍历数组***");
        for(int number:nums){
            ystem.out.println(number);
        }
    }
}

二维数组

操作二维数组步骤:
1 声明数组并分配空间
数据类型[][] 数组名 = new 数据类型[行的个数][列的个数];
or
数据类型[][] 数组名;
数组名 = new 数据类型[行的个数][列的个数];
2 赋值
数组名[行的索引][列的索引] = 值;
也可以声明数组的同时为其赋值。
数据类型[][] 数组名 = {{值11,值12,...},{值21,值22,...},{值31,值32,...}...};
3 处理二维数组
在循环输出时,需要里面再内嵌一个循环,即使用二重循环来输出二维数组中的每一个元素。

int[][] nums = {{1,2,3},{4,5,6}};
for(int i=0; i<nums.length; i++){
    for(int i=0; j<nums[i].length; j++){
        System.out.println(nums[i][j]);
    }
}

Java中的方法

所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。
一般情况下,定义一个方法的语法:

访问修饰符 返回值类型 方法名(参数列表){
        方法体;
}

其中
1 访问修饰符
方法允许被访问的权限范围,可以是public、protected、private甚至省略,
2 返回值类型
如果方法不返回任何值,则返回值类型指定为void;如果方法具有返回值,则需要指定返回值类型,并在方法体中使用return语句返回值。
3 方法名
定义的方法的名字,必须使用合法的标识符
4 参数列表
传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开 

方法的使用分两步

第一步:定义方法
譬如,定义一个没有参数没有返回值的方法

public void showMessage(){
    System.out.print("hardworking");
}

第二步:调用方法
当需要调用方法执行某个操作时,可以先创建类的对象,然后通过 对象名.方法名();

public static void main(String[] args){
    personInfo bert = new personInfo();
    bert.showMessage();
}
public void showMessage(){
    System.out.print("hardworking");
}

没有参数有返回值的方法

public int calsSum(){
    int a=5;
    int b=12;
    int sum=a+b;
    return sum;
}

在calsSum方法中,返回值类型为int类型,因此在方法体中必须使用return返回一个整数值。调用带返回值的方法时需要注意:由于方法执行后会返回一个结果,因此在调用带返回值方法时一般都会接收其返回值并进行处理。

public class HelloWorld{
    public static void main(String[] args){
        HelloWorld hello = new HelloWorld();
        int sum =hello.calsSum();
        System.out.print("两数之和:"+sum);
    }
    public int calsSum(){
        int a=5;
        int b=12;
        int sum=a+b;
        return sum;
    }
}

有参数无返回值的方法

public class avgScore{
    public static void main(String[] args){
        avgScore hello = new avgScore();
        hello.calcAvg(94, 81);
    }
    public void calcAvg(double score1,double score2){
        System.out.println("avgScore is "+(score1+score2)/2);
    }
}

可见,输出在方法中

带参数带返回值的方法

import java.util.Arrays;

public class HelloWorld {
    public static void main(String[] args) {
        HelloWorld hello = new HelloWorld();
        int[] scores={79,52,98,81};
        int count= hello.sort(scores);
        System.out.println("gongyou"+count+"gescoreInformation");
    }

    public int sort( int[] scores ){
        Arrays.sort(scores);
        System.out.println(Arrays.toString(scores));
        return scores.length;
    }
}

方法的重载

定义
如果同一个类中包含了两个或两个以上方法名相同,但是方法参数的个数、顺序或类型不同的方法,称为方法的重载。

如何区分调用的是哪个重载方法呢?
当调用被重载的方法时,Java会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行。

判断方法重载的依据:

  1. 必须是在同一个类中
  2. 方法名相同
  3. 方法参数的个数、顺序或类型不同
  4. 与方法的修饰符或返回值没有关系
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值