初识Java——学习笔记

前言:java是一个纯面向对象的开发语言。面向对象开发其实就是从显示生活中类比而来,  更符合我们人类的思维模式,我们学习java一定要多类比现实生活。(e·g·我们每个【人】都是【人类】这个【类】的对象。)

 1.初识 “Hello World !”

//创建类
public class Day_1 {
    //“类体”,不允许直接编写Java语句,除声明变量外[e.g. int size = 0;]
    public static void main(String[] args){
        //“方法体”
        //Java语句
        System.out.println("Hello World !");
    }
}

 代码解释:

  1. 在java开发中,一切皆对象,所有方法和属性都必须 "包" 在【类】之中,且必须在类中定义变量和方法。

  2. [public] 表示权限是公开的,可以随意访问

  3. 像上面代码中 [class] 就是一个【类】

  4. 首行中 [public class] 为主类,一个源文件中只能存在一个 [public class]

  5. [Day_1] 为该主类的名称 ,该类名称必须与源文件名保持一致

  6. [static] 是一个关键字,在java中代表【静态】,静态方法在被调用执行过程中都会首先加载,一次运行只加载一次

  7. [void] 是一个关键字,在java中代表 【空】 ,修饰的这个方法时没有返回值 (return)

  8. [main] 则是一个程序的入口,是这个程序启动的钥匙,也必须放在一个类中进行定义

  9. (String[] args) 这个括号中是【字符串】数组,是 [main] 的形式参数列表,表示在运行这个主方法时,由程序外部传入一些调用该方法的信息。

  10. [System.out.println] 这里则是调用了java中的打印命令 ( [print] 后面加了 [ln] 则是换行打印 )

  11. ”Hello World“ 中双引号为【半角】的英文符号,程序源代码中只能使用英文半角标点符号,Java中所有的【字符串】都用 “ ” 双引号括起来

  12. java语句必须以 “ ; ” 分号结束

 2.变量和类型

 2.1变量

         1. 变量指的是程序运行时【可变】的量,相当于开辟一块内存空间来保存的一些数据

int a = 10;//其中 [a] 就是一个变量
a = 20;//将 [a] 重新赋值为"20"

                [int] 表示它的类型被锁定为整型,[a] 虽然可以重新被赋值,但依然只能用整型。

        2.变量作用域:在java中,大括号 {} 会限定变量的作用范围

public class Test {
    public static void main(String[] args) { 
        int i = 2022;
        System.out.println(i);     //编译成功
    }
    System.out.println(i);        //编译失败,找不到变量 i
 }

        上图中,编译器显示第6行报错,因为 [i] 变量只有在第二个大括号中被定义,出了这个大括号则无法再被找到。

 变量有着严格的命名规则:

        1.变量只能使用包含数字、字母、下划线、美元符号

        2.变量名不能以数字开头,不能使用空格

        3.变量名严格区分大小写,[index] 和 [Index] 是两个完全不同的变量

        4.变量名不能使用java中的【关键字】

        5.变量名允许使用中文和美元符号 [$] ,但强烈不推荐这么做

 变量名应注意:

        1.要能表达该变量的具体意义

        2.变量名不宜使用拼音

        3. [studentName] 存在多个单词时,变量名推荐使用小驼峰命名法,首字母小写,                      其他单词首字母大写

 2.2 类型

        类型通常指【数据类型】,是对变量的种类进行了划分,不同类型的变量具有不同的特性。

 

        【数据类型】主要分为【基本数据类型】和【引用数据类型】,目前阶段主要接触的是【基本数据类型】,在基本数据类型中又分为【整型】,【字符型】和【布尔型】。

八种数据类型
字节类型关键字取值范围占用空间默认值
字节类型byte[-128 ~ 127]1字节0
短整型short[-32768 ~ 32767]2字节0
整型int[-2^31 ~ 2^31 - 1]4字节0
长整型long[-2^63 ~ 2^63 - 1]8字节0L
单精度浮点型float[1.4E - 45 ~ 3.4028235E38]4字节0.0f
双精度浮点型double[ 4.9E-324~1.7976931348623157E308]8字节0.0
字符型char[0 ~ 65535]2字节\u0000
布尔型boolean[true , false]---false

 

 

注:

  1. [short] 和 [char] 所表示的种类总数是一样的,只不过 [char] 可以表示更大的正整数,[char] 没有负数。

  2. 八种数据类型默认值基本向 [0] 看齐

  3. java中 “ 整数型字面值 ” 被默认当做 [int] 类型来处理,要让这个 “ 整数型字面值 ”被当做 [long] 类型来处理,需要在 “ 整数型字面值 ” 后面添加 [l] 或 [L],建议使用大写的 [L]

  4. java中 “ 整数型字面值 ” 有三种表达方式:

        第一种方式:十进制 【是一种缺省默认的方式】 常用

        第二种方式:八进制 【编写八进制 “ 整数型字面值 ” 需要以 [0] 开始】

        第三种方式:十六进制 【在编写十六进制 “ 整数型字面值 ” 的时候需要以 [0x] 开始】

     5.数值类型有严格的取值范围,超出此范围则会编译报错。

        //short i = 32767;  //编译通过

        //short i = 32768;//编译报错

附.char类型:

        转义字符 “ \”

        转义字符出现在特殊字符之前,会将特殊字符砖换成普通字符。

        \n  换行符

        \t   制表符

        \'   普通的单引号

        \\   普通的反斜杠

        \"   普通的双引号

 2.3 类型转换

1. 小容量向大容量转换,称为自动类型转换,"容量"从小到大排序:

        byte < short < int < long < float < double < char

2. 浮点型不管占用多少字节,都比整数型 "容量" 大

3. [char] 和 [short] 可以表示种类数量相同,但是 [char] 可以取更大的正整数

4. 多种数据类型混合运算,先转换成容量最大的那种类型再做运算

5. 大容量转小容量可能会造成"精度损失",这里涉及计算机底层编码的原码和补码

6. 当一个整数没有超出 [byte、short、chat] 的取值范围时,这个字面值可以直接赋值给                    [byte、 short、chat] 类型的变量。这种机制是为了方便编程。

7. [double] 类型转 [float] 类型需要在后面加 [f] ,或者进行强制类型转换

        // double i = 4.3;         //小数默认都是 [double] 类型

        // float i = (float)4.3; //强制类型转换

        // float i = 4.3f;         //没有类型转换

 1. 自动类型转换

// int 类型字面值 2022 赋值给 long 类型的变量 x,存在类型转换
// int 类型转换为 long 类型,int 是小容量, long 是大容量,小转大被称为 "自动类型转换机制"

long x = 2022; 

 2. 超出容量报错

//2147483648被当做int类型4个字节处理,但是这个字面值超过int类型范围

int x = 2147483648; //编译错误:过大的整数:2147483648

//需转换为
long x = 2147483648;

 3. 强制转换精度损失原理

//原始数据:00000000 00000000 00000000 00000000 10000000 00000000 00000000 00000000
//强转后数据:10000000 00000000 00000000 00000000
//强转后的数据储存在计算机内部,计算机储存数据都是采用补码形式存储
//10000000 00000000 00000000 00000000现在是一个补码形式
//将以上补码转换到原码就是最终结果

long a = 2147483648L;
int b = (int)a;  //损失精度严重,结果是负数 [-2147483648]

4. 整型与浮点型之间的丢失精度 

int a = 5;

double b = 10.5;

a = b;  //b赋值给a,提示会丢失精度

b = a;  //a赋值给b,编译通过

5. 整型与浮点型之间的转换

int a = 2022;

double b = 2011.1;

a = (int) b;  // b可以正常赋值给a

2.4 运算符

1、算术运算符

        主要在需要进行赋值运算时使用

+  求和

-   相减

*   乘积

/    商

%  求余数【取模】    12/10...2,x = 2

++ 自增【自动加一】 i++,先做赋值运算再加一;++i,先加一再做赋值运算

--   自减【自动减一】 i--,先做赋值运算再减一;--i,先减一在做赋值运算

一个表达式有多个运算符,运算符有优先级,不确定的加小括号,优先级提升

2、关系运算符

        主要在需要进行判断时使用

>    大于

>=  大于等于

<    小于

<=  小于等于

==  等于(相同)

!=   不等于

1. 区分 := 是赋值运算符,==是关系运算符

    int a = 10;    // 给a赋予值为10 ,结果为 a = 10

    if(a == 10);  //判断a是否等于10,结果为 true / false

2. 关系运算符运算结果一定是布尔类型:true/false

3、逻辑运算符 

        主要在需要进行判断时使用

&  逻辑 与 【并且】 (两边的算子都是true ,结果才是 true)

|   逻辑 或 【或者】 (两边的算子只要有一个true,结果就是true)

! 逻辑 非 (取反,!false 就是 true,!true 就是 false, 单目运算符)

^   逻辑 异 (两边的算子只要不一样,结果就是true)

&& 短路 与

||    短路 或

  1. 逻辑运算符要求两边的算子都是布尔类型 (判断 “是” 或 “否” ),其运算结果也是一个布尔类型。

  2. “ 短路 ”与 “ 逻辑 ” 最终的运算结果都是相同的,只不过 “ 短路 ” 运算存在 “ 短路 ” 现象

  3. “ 短路 ” 现象就是前者已经完成判断的情况下,后者已不需要再进行判断


    e.g. if( i < 1 && i > index),若条件为 int i = 0 ,则前者已经满足条件返回true,直接跳过后者判断进入 if 语句中。

 3.关键字

        各种类名,方法名,变量名都不可以使用的单词!关键字对于编译器有特殊含义,不能当做一般标识符使用。

Java的51个关键字
数据类型boolean、int、long、short、byte、float、double、char、class、interface
流程控制if、else、do、while、for、switch、case、default、break、continue、return、try、catch、finally
修饰符public、protected、private、final、void、static、strict、abstract、transient、synchronized、volatile、native
动作package、import、throw、throws、extends、implements、this、supper、instanceof、new
保留字true、false、null、goto、const

 

 

 

  

 注意:Java区分大小写,public是关键字,而Public则不是关键字,为了程序的可读性,尽量避免使用关键字来命名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Spark是一种大数据处理的框架,它可以处理大量的数据并进行分析。初学者可以通过学习Spark的基本概念和使用方法,了解Spark的工作原理和应用场景。在学习Spark的过程中,需要掌握Spark的核心组件和API,例如Spark Core、Spark SQL、Spark Streaming等。此外,还需要学习Spark的部署和调优,以及与其他大数据技术的集成。 ### 回答2: Spark是一种基于内存的分布式计算框架,是大数据处理中最流行的技术之一。Spark简单易用,能够快速地处理海量数据,尤其是在机器学习和数据挖掘领域中表现突出。本文将从初识Spark的角度入手,介绍Spark的基本概念和使用。 一、Spark的基本概念 1. RDD RDD全称为Resilient Distributed Datasets,中文意思是弹性分布式数据集,它是Spark的核心数据结构。RDD是一个不可变的分布式的对象集合,可以跨越多个节点进行并行处理。一个RDD可以分为多个分区,每个分区可以在不同的节点上存储。 2. DAG DAG即Directed Acyclic Graph(有向无环图),它是Spark中的一个概念,用来表示作业的依赖关系。Spark将一个作业拆分成一系列具有依赖关系的任务,每个任务之间的依赖形成了DAG。 3. 窄依赖和宽依赖 对于一个RDD,如果一个子RDD的每个分区只依赖于父RDD的一个分区,这种依赖就称为窄依赖。如果一个子RDD的每个分区依赖于父RDD的多个分区,这种依赖就称为宽依赖。宽依赖会影响Spark的性能,应尽量避免。 二、Spark的使用 1. 安装Spark 要使用Spark,首先需要在本地或者集群上安装Spark。下载安装包解压缩即可,然后设置环境变量,即可在命令行中运行Spark。 2. Spark Shell Spark Shell是Spark的交互式命令行界面,类似于Python的交互式控制台,可以快速测试Spark代码。在命令行中输入spark-shell即可进入。 3. Spark应用程序 除了Spark Shell,Spark还支持以应用程序的形式运行。要创建一个Spark应用程序,可以使用Scala、Java、Python等语言进行编写。使用Spark API,读取数据、处理数据、保存数据等操作都可以通过编写代码完成。 总之,Spark是一种优秀的分布式计算框架,能够在海量数据处理中发挥出强大的作用。初学者可以从掌握RDD、DAG、依赖关系等基本概念开始,逐步深入学习Spark的使用。 ### 回答3: Spark是一种快速、分布式数据处理框架,它能够在成千上万个计算节点之间分配数据和计算任务。Spark的优势在于它支持多种语言和数据源,可以在内存中快速存储和处理数据。 在初学Spark时,我们需要对Spark的架构和核心组件有一些了解。首先,Spark的核心组件是Spark Core,它是一个可以用于建立各种应用程序的计算引擎。与此同时,Spark持有丰富的库,包括Spark SQL、Spark Streaming、MLLib和GraphX等,以支持在各种数据类型(文本、图像、视频、地理定位数据等)上运行各种算法。 若想要在Spark中进行任务,有两种编程API可供选择:Spark的核心API和Spark的SQL及DataFrame API。Spark的核心API基于RDDs(弹性分布式数据集),它是不可变的分布式对象集合,Spark使用RDD来处理、缓存和共享数据。此外,Spark的SQL及DataFrame API提供了更高层次的语言,可以处理结构化和半结构化数据。 除了组件和API之外,我们还需要了解Spark的4个运行模式:本地模式、Standalone模式、YARN模式和Mesos模式。本地模式由单个JVM上单个线程(本地模式)或四个线程(local[*]模式)运行。Standalone通常用于小规模集群或开发和测试环境。在YARN或Mesos模式下,Spark将任务提交给集群管理器,并通过管理器分配和管理资源。 总体来说,初学Spark时,我们需要了解Spark的核心组件、编程API和运行模式。熟悉这些概念以及Spark的架构,可以帮助我们更好地理解Spark和构建高效且可扩展的Spark应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值