大数据分析技术之JAVA基础(一)

写在前面:这几天开学了学校开了大数据课程,前期需要学习JAVA的基础,所以我打算开一个JAVA的学习系列,这个就当自己学习的一个记录,方便期末复习。

学习内容安排

JAVA基础课程学习:数据类型(一)、运算符表达式和程序结构控制(二)、面向对象基础:类与对象和接口(三)、面向对象基础:继承抽象多态封装(四)、异常类和常用实用类(五)、组件和事件处理(六)、IO和JDBC(七)、泛型和集合函数(八)。
后续的大数据相关基础的话就重新开一个系列,那今天就开始第一个内容,数据类型初始。

一、数据类型初识

今天的内容我们会对标识符介绍以及命名的规则、JAVA基本数据类型的简单讲解、输入输出数据、数组等。


标识符
所谓标识符就是用来表示类名、变量名、方法名、类型名、数组名、文件名的有效字符序列成为标识符,也就是一个名字,一般情况下我们使用驼峰命名法来命名标识符,也就是类似于examScore(变量名)、TextMax(类名)这样的。那么对于JAVA一般还有一些约定的命名的规则,(1)标识符第一个字符不能是数字字符;(2)标识符不能是true、false、null;(3)标识符不能是关键字;(4)最好是由英文单词构成,方法属性变量的首字母小写、类和文件名单词首字母大写;(5)不能设为关键字也就是比如byte、int、float、short、boolean、double、if等;(6)最好不要设置为汉字,后期会存在很多乱码的问题。


JAVA基本数据类型
在JAVA中有8中基本的数据类型,这8中基本的数据类型又可以分为以下四大类,
逻辑类型:boolean(声明逻辑变量,有true和false两种)
整数类型:byte(1个字节,占8位,意味着byte型变量的取值范围在-27到27-1)
     short(2个字节,占16位,意味着其取值范围在-215到215-1)
     int(4个字节,占32位,取值范围在-231到231-1)
     long(8个字节,占64位,取值范围在-263到263-1)
字符类型:char(用来声明常量一个字符,在JAVA中汉字也为一个字符)
浮点类型:float(占32,位需要加上后缀f或者F)
     double(占64位,定义更大范围浮点数后缀为D可省略)
下面展示一下在JAVA程序中如何去声明各种类型的变量,

/*
此程序用于展示说明8类基本数据类型变量
*/
package test; // 这里的package就是指的test文件夹

public class Test {
	boolean on = true, boy = false;
	byte score = 100;
	short age = 45;
	int id = 20200224;
	long value = 2020022424;
	
	char sex = 'M', name = '男';
	
	float g = 99.8f, h = 99.8F;
	double m = 99.8D, k = 99.8;
}

在此之后我们希望转换一下数据的类型,首先我们需要明白在JAVA中的数据基本类型按照精度从低到高依次排列为,
byte、short、char、int、long、float、double
将低级别的变量赋值给高级别变量的时候,系统会自动完成,但反过来则需要使用对应方法才能转换,

/*
此程序用于展示基本数据类型转换
*/
package test;

public class Test {
	public static void main(String aa[]){ //这个是固定句式
		double x = 89.54D;
		int y = (int)x;
		float z = (float)x;
	}
}

输入输出数据
在我们运行完后希望了解一下如何输出查看数据以及我们有时候想让程序更灵活一些应该怎么样来输入数据呢?来看下面这段程序,我们使用System.out.print()输出Scanner方法进行输入,这里注意输入需要载入包;

/*
此程序用于计算1到N求和,N由用户自行输入
*/
package test;
import java.util.Scanner;
public class Test {
	public static void main(String aa[]){ //这个是固定句式
		Scanner in = new Scanner(System.in) // 声明输入对象
		int sum = 0;
		System.out.print("please input the N(1 + 2 + ... + N):")
		int t in in.nextInt()
		for (int i = 1; i <= t; i++){
			sum = sum + i;
		}
		System.out.println("sum="+sum); //println表示换行输出
	}
}

这样我们就实现了一个手动输入的从1到N求和的函数,当然还可以输入一些字符串,

/*
此程序用于输入字符串并输出
*/
package test;

public class Test {
	public static void main(String aa[]){ //这个是固定句式
		Scanner in = new Scanner(System.in) // 声明输入对象
		System.out.print("please input your name:");
		String m = in.nextLine();
		System.out.println("Hello "+m+", good morning!"; //该函数可以通过输入sout然后按下tab键自动填充
	}
}

数组
本节的最后我们来讲一下数组的JAVA基本使用,数组对于编程来说能够减少大量的重复工作,下面展示一下数组如何在JAVA中进行声明以及如何使用,

/*
此程序用于声明数组并进行循环运算
*/
package test;

public class Test {
	public static void main(String aa[]){ //这个是固定句式
		int ar1[], ar2[][]; //首先是声明数组
		float [] br1, [][] br2; //前为一维数组,后为二维数组
		
		ar1 = new int[4]; //然后为数组分配元素空间
		
		ar1[0] = 1;
		ar1[1] = 2;
		ar1[2] = 3;
		ar1[3] = 4;
		
		int sum = 0;
		for(int i =0; i < 4; i++){
			sum = sum + ar1[i];
		}
		System.out.println(sum);
	}
}

这种声明数组的方法其实也显得有些累赘,下面我们介绍另一种数组声明、分配空间、赋值一体的办法。

/*
此程序用更简洁的方法声明数组并进行循环运算
*/
package test;

public class Test {
	public static void main(String aa[]){ //这个是固定句式
		int ar[] = [1,2,3,4]
		int sum = 0;
		for(int i =0; i < ar.length; i++){
			sum = sum + ar[i];
		}
		System.out.println("avg="+sum/ar.length); //.length 返回数组长度
	}
}
avg = 2  // 这里因为sum是int类型于是舍去小数点后

小练习
设计一个二分的算法来寻找目标整数是否存在已有数组中,

/*
本程序用于寻找目标数值是否出现在数组中,二分法
*/

package tt;

import java.util.Scanner;

public class Homework1 {
    public static void main(String aa[]){
        int s, len, scores[] = {1,24,25,26,45,67};
        len = scores.length;
        for(int i = 0; i < len; i++){
            for(int j = i+1; j < len; j++){
                if(scores[i] > scores[j]){
                    s = scores[j]; scores[j] = scores[i]; scores[i] = s;       
                }
            }
            System.out.println(scores[i]); //展示排序后的数组
        } //设计一个排序的算法,让数字首先从小到大依次排列
        
        
        int a = 1, b = len, m = (int)len/2;
            
        Scanner in = new Scanner(System.in);
        System.out.print("[请输入你需要寻找的整数]> ");
        int goal = in.nextInt(); //输入寻找目标值
            
        while(true){
            m = (b + a)/2;
            if (goal == scores[0] ||goal == scores[len - 1]){
                System.out.println(goal+" 在数组中!");
                break;
            } //用来判断数据是否在开头和结尾存在;
                
            if (b - a == 1){
                System.out.println(goal+" 在数组中不能找到!");
                break; //用来结束搜索
            }else{
                if (goal > scores[m-1]){
                    a = m;
                }else if(goal < scores[m-1]){
                    b = m; //调整两端
                }else{
                    System.out.println(goal+" 在数组中!");
                    break;
                }//正常的二分搜索区间缩小已经寻找过程
            }
        }
    }
}

结语
在本节中我们分享了JAVA基础的数组、以及输入输出和数组的运算。后续会随着我课程的更新而更新。
谢谢阅读.

发布了20 篇原创文章 · 获赞 79 · 访问量 2762

猜你喜欢

转载自blog.csdn.net/qq_35149632/article/details/104484166
今日推荐