JavaSe部分总结

我们先来了解一下Java语言,JavaSE是Java编程语言的标准版,主要是来学习Java的基本语法,书写方式,以及一些简单的逻辑循环和判断,包括一些关键字,特殊类(抽象类),特殊的方法(static修饰的方法,final修饰的方法)等等,最重要的是Java语言是比较C语言和C++语言是比较简单的,Java是面向对象的语言,面向对象的语言的三大特性"封装","继承","多态",Java作为面向对象语言的一种,也是具有这样的特性的

Java语言的编译过程是靠JVM(虚拟机)来完成的,先把编译好的.java文件,传入的JVM中编译成.class的文件(这里的内容都是乱码,我们是看不懂的,但是机器可以),这些.class文件传入计算机进行读写,输出我们想要的内容,正因为有JVM这一步的编译使得Java代码的可移植性,比较高,虽然可移植性高,但是有利有弊,这样就使得Java代码的效率变低了,占用的空间也变大了

第一部分:基本数据类型与数组

第一小部分:类型可以分为四大类:1.逻辑类型,2.整数类型,3.字符类型4.浮点类型

1.逻辑类型:也就是boolean类型的"true""false"

2.整数类型:从小到大排序为"byte","short","int","long",我们在Java代码中长用的是int,和long最常用的是int,Java中的变量声明为 "数据类型  变量名;"例如"int num;"

3.字符类型:字符类型是用关键字"char"来声明的,要注意的是单引号('')中的是字符,双引号("")中的是字符串.也叫String类

4.浮点类型:float,和double 在Java代码中最常用的是 double 类型的,float 类型在使用的时候在后面要加上"f"或"F",比如"float num = 12.3f或 float num = 12.3F"在使用float的时候一般我们都是加"F"更好区分

第二小部分:类型转换

数据类型我们按照精度从小到大排序可以排成:byte , short , char , int , long , float , double 

类型转换我们分成两种:1.自动类型转换,2.强制类型转换

1.自动类型转换:精度由小到大,比如"double num = 100;"这就是"int"转"double"

2.强制类型转换:精度由大到小,会导致精度丢失,比如"int num = (int)19.2F",把float类型的强制转为int类型的会导致小数点后面的部分丢失.

第三小部分:输入输出

1.输入:我能使用Java.util中的Scanner类来帮我我们解决,比如Scanner scanner = new Scanner(System.in);这个过程是创建对象的过程,我们也叫"实例化"

2.输出:用"System.out.println();"通过这个语句可以进行输出

第四小部分:数组的声明

1.一般采取的声明方式为:数据类型[] 数组名 = new 数据类型[],比如"int[] arr = new int[]";第一个[]中是不可以放数字的,这一点不同于其他编程语言,也是我自己在写代码中发现的自己出现的问题

2.二维数组的声明:声明的方式和一维数组的方式一样,二维数组的本质就是一维数组.

3.访问数组中的元素:我们通过数组名[数字]的方式来访问数组中的内容"num[4]",在访问的事后要注意出现"数组越界"的发生

第二部分:运算符和语句

1.运算符:"过"(这个不会别学编程了)

2.语句:

2.1 if()语句:当()中的内容为true的时候会进入if 条件的内部

2.2 if()-else() 语句:当if()中的内容为true的时候会进入if 条件的内部,如果为false就会进入else()中

2.3 多重的if()-else()语句:可以同if()-else() 语句进行理解

2.4 switch()开关语句:此语句在使用的时要多注意加"default",满足条件后要关闭使用

2.5 while()循环语句:()中的条件每循环一次都会进行一次判断,如果判断的结果为"true"就进入循环继续执行,如果为false就退出循环

2.6continue和break语句:多用于循环当中区别在于continue是跳过此处循环,而break是终止本次循环,退出循环,我们通过在循环语句中加入这两个语句,让我们在必要的时候退出循环,避免陷入到死循环的陷阱中

2.7 for(表达式1;表达式2;表达式3){}:for语句起到判断并循环的用法,在我们写Java代码中也是我们最常用的语法,表达式1是声明变量,表达式2是判断语句,表达式3是更新变量语句.

2.8 for与数组的关系:我们可以通过for循环的特点,通过循环遍历数组中的每一个元素.在通过输出语句可以打印输入数组中的每一个元素.

2.9 import语句:import是导入类库中的类,也可以导入自定义包中的类

第三部分:类与对象(核心部分)

3.1类的声明:通过class关键字来声明类,比如"class Test1",写类的目的是为了描述一类事物所有的属性和功能,在声明类的时候类名的首字母要大写

3.2类体:类体中存在的是"方法"和"变量(成员变量)"

3.3成员变量和局部变量:成员变量是在类中声明的变量,生命周期是程序的开始运行到程序的结束,局部变量是在方法中声明的变量,生命周期是方法的被调用的开始与结束,生命周期与成员变量相比较短,我们通过"this"关键字的方式把成员变量的值赋给局部变量使用,也可以用来防止变量名的重复导致,程序在运行的时候无法识别我们是使用的成员变量还是局部变量.

3.4方法:方法的声明是放在类中的不是放在"main"方法中的,"main"方法我们也叫主方法,方法中是不可以在声明方法的,会报错,方法的声明要放在类中,这也是我在自己实践中亲身出现的错误

3.5构造方法:每个类都会有构造方法,如果你在类中没有写构造方法,编译器也会,默认生成一个构造方法,构造方法的方法名必须和类名是一样的,而且是没有返回值的,我们可以根据定义,不同的形参,创建多个构造方法

3.6声明对象:通过类名加对象名的方式,比如"类名 对象名",也可以通过"类名 对象名 = new 类名"的方式进行对象的声明

3.7对象的引用和实体:我们在进行对对象中的内容进行比较的时候,如果通过"new"创建出来的对象进行比较,那我们比较的就是它们的"引用",也就是简称为存放的"地址",反之我们的比较的是里面的内容.

3.8实例变量和类变量:实例变量和类变量本质都是成员变量,类变量是被关键字"static"修饰过的变量,也叫"静态变量",不同对象的实例变量是不同的,类变量是被所有变量所共同拥有的,可以通过类名直接访问类变量,类变量不能被"this和super"使用.

3.9实例方法和类方法:被关键字"static"修饰过的方法是类方法,我们通过对象调用实例方法,通过类名调用类方法

3.10:方法重载:我们可以在一个类中定义多个名字相同的方法,要想构成方法重载,这些名字相同的方法  形参的数据类型 形参的个数,至少有一个是不相同的,才能构成方法重载,我们在调用方法的时候,根据传入的参数个数,以及传入参数的数据类型来去区别方法,进而调用不同的方法.

第四部分:关键字和访问权限

4.1this关键字:在构造方法中,我们定义的形参与构造方法中接受这些形参的局部变量相同时,我们通过关键字"this",来区分传入的参数和局部变量,this出现在实例方法中时,this表示正在调用该方法中的当前对象.

4.2private权限:也叫私有的,被private修饰过的方法和变量,叫私有变量和私有方法,这样的方法和变量的使用范围是在当前类中,其他类中不能访问,我们一般把变量的访问权限都定义为private,方法看情况

4.3public权限:也叫公共的,其他类中也可以访问被该类修饰的方法和变量"main"方法就是

4.4 instanceof运算符:在instanceof中当左边的操作元素是右边类或者是其子类所创建的对象时,会输出true否则输出false

4.5 super关键字:子类从父类中继承得到的方法和成员变量被,隐藏和被重写时,我们再次调用时,我们调用的就是子类中新写的,方法和变量,如果我们想要访问被覆盖和隐藏的方法和变量时,我们可以通过"super"关键字获取的父类中的信息.访问方法"super.fun()",访问变量"super.n".

4.6 final关键字:final修饰过的类是不可以被继承的,final修饰过的变量数值是不能被修改的,final修饰过的方法是不可以被重写的,

第五部分:子类与继承

5.1子类与父类:我们创建类一个"Animal"类和"Dog"类通过关键字"extends"完成"Dog extends Animal"此中的Dog就是Animal的子类,Animal就是Dog的父类

5.2子类的继承性:

5.2.1子类和父类在同一个包中:子类继承了父类中访问权限不是"private"的所有的方法和成员变量,继承的成员变量和方法的权限都是与父类的权限是一样的

5.2.2子类和父类在不同包中:子类会继承父类的中的protected,和public权限的方法和变量

5.2.3成员变量的隐藏:在子类中声明一个与父类名字一样的成员变量,子类中的这个成员变量就会隐藏父类中的成员变量,

5.2.4方法重写:在子类中声明一个与父类一样的方法,子类声明的方法就覆盖掉了子类从父类中继承的原方法,

5.2.5对象的向上转型对象:通过这个方法,我们可以创建父类的对象去实现子类的实例,我们通过不同的向上转型,但是通过相同的对象可以调用不同子类中的方法 "Anmial a = new Dog"

第六部分:我们来讲解一下"面向对象"的编程语言的三大特点"封装","继承",''多态'',同样也是Java的特性,在Java中封装是为了,方便调用者,我们把一些必要的东西给封装起来,避免调用者对其修改,有降低了调用者的思考,比如我们就不需要去了解"JVM"内部是什么样的,就大大降低了,程序员的门槛.继承,是为了帮助我们在写代码是的内聚性,一个好的代码,内聚性一定是低的,使得我们更加容易读懂代码,在多个类中我们可能会用到相同的变量和方法,我们可以通过继承的方式获取到,这在一定程度上是降低了我们代码的行数,也体现出的一定的面向过程,多态,多态的存在是因为继承的原因,我们的继承只可以单继承,不可以实现多继承出现,多继承会出现"菱形继承"问题,我们为了实现多态就实现了接口,接口中的方法是抽象方法,接口中声明的方法是不需要具体实例的,所有实现接口的类,都必须要重写接口中的抽象方法,抽象类的定义是:抽象类被"abstract"关键字修饰,抽象类中一定会有抽象方法,而接口中的方法都是抽象方法,接口可以被多个类次实现,这也就弥补了,类不能实现多继承的问题.

我们在来讲解一下内部类,异常类和匿名类:在Java中类中还是可以定义类的但是,用的是比较少的,只有匿名类用的比较多,简单来说就是在类的内部再定义一个类.

关于Java中的异常,我们为了确保程序的正常运行,我们会在程序可能出现异常的地方进行异常的检查,我们会把异常信息放入到"try{}"中,如果try{}中出现异常就会把异常抛出,与try{}一起使用的是"catch(){}"try{}中抛出异常会与catch()中的内容进行匹配,如果catch(){}中有相对应的异常信息,程序就会打印输出相关的异常信息,程序员看到相关的异常信息会快速定位到出现异常的位置,修改代码,如果catch(){}中没有相对应的异常,就会交给JVM来处理,程序会终止.

最后我们来讲解一下String类,String类中的东西确实比较多,而且也非常常用,但是都是比较简单的,我就简单来讲解一下,比如String的常量,String的对象,但是要注意的是,String的常量是不可修改的,可以理解为被final关键字修饰过,String类中还有许多方法,比如我们比较常用的,比较两个字符串中的内容关键字"equals()",还有String数组.这里比较多我就不一一介绍了.

我简单讲解一下我的收获,在大学的生活很安逸,也就是在这种状态下我度过了大一的时间,当我回过头想想的时候,我以后要干什么?我会干什么?我的专业能让我干什么?,这三个问题一直困扰着我,我在刚刚大一的时候,我的目标就是好好学习,拿奖学金,入党,拿三好学生,但是我的短板我也知道,就是英语太差,导致我在大一下学期的期末考试时,英语挂科了,我也知道挂科意味着什么,我大二就索性摆烂了,就在我不作为的一段时间中,我通过我们的课程了解到了编程,根据现在的情况来看当个程序员,并不是好的选择,但是以我目前的学校层次,和我自己的短板,我不敢拿将近3年的时间去赌考研成功,我知道我一旦失败了,我是不可能复习的,我前面的功课对我未来找工作是没有任何作用的,我也打电话听取了我目前在211就读的哥哥的意见,我就开始想我在大学剩下的时间里去学习一门什么样子的"技术",在多次权衡下我就选择了走编程这一条路,现在我已经系统的学习了一个半月,把JavaSE部分学习完毕,并写下此次总结,我相信实力才是王牌.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/64325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

适用于 Windows 的 Podman

适用于 Windows 的 Podman 虽然“容器是 Linux”,但 Podman 也可以在 Mac 和 Windows 上运行,它提供原生 CLI 并嵌入来宾 Linux 系统来启动您的容器。此 guest 称为 Podman 计算机,并使用命令进行管理。在 Windows 上,每台 Podma…

Linux中 vim 常用命令大全详细讲解

文章目录 前言一、Vim 基本操作 🕹️1.1 打开或创建1.2 退出编辑1.3 模式切换 二、Vim 光标移动命令 ↕️2.1 基本移动2.2 行内移动2.3. 单词移动2.4. 页面移动2.5. 行跳转 三、Vim 文本编辑命令 📋3.1 插入和删除3.2 复制、剪切与粘贴3.3 替换与修改 四…

如何借助5G网关实现油罐车安全在线监测

油罐车是常见的特种运输车辆,用以运送各种汽油、柴油、原油等油品,运输危险系数大,而且由于油罐车需要经常行驶在城区道路,为城市各个加油站点、企业工厂运输补充所需油料,因此也是危化品运输车辆的重点监测和管控对象…

联想至像M3070DW打印机连接手机方法

首先,按打印机上的“功能”键,上翻页翻到第4项“网络”按“OK”键进入; 点进去之后,再按下翻页翻到第3项“安装向导”,按“OK”键进入; 然后,选择我们要连接的WiFi并输入WiFi密码, 输…

双亲委派机制是Java类加载器的一种工作模式

双亲委派机制是Java类加载器的一种工作模式,确保了类加载的一致性和安全性。以下是对双亲委派机制的详细解析: 一、定义与工作原理 双亲委派机制(Parent Delegation Model)要求除了顶层的启动类加载器外,其余的类加载…

Qt 使用modbus协议

Qt 框架下 使用modbus协议 一,使用Qt原生的 QModbusClient ,比如QModbusTcpClient 1,因为modbus的读写 需要在同一个线程中,所以需要在主线程中利用moveToThread的方式,将业务逻辑封装到 子线程中。 2,m…

C语言中怎样将NULL定义为空指针?空指针的具体值其实为0哈,即地址值为0的指针为空指针。

用下面这条命令即可: #define NULL (void *)0下面是对这句代码的解释: #define NULL (void *)01. #define 的作用 #define 是一个预处理指令,用于定义宏。宏替换发生在编译前的预处理阶段,所有出现 NULL 的地方都会被替换为 (v…

Linux中的cp命令:使用、原理与源码分析

在Linux系统中,cp命令是最常用的命令之一,用于复制文件或目录。无论是日常的文件管理,还是系统维护,cp命令都扮演着重要的角色。本文将深入探讨cp命令的使用方法、工作原理,并从源码层面分析其实现细节。 1. cp命令的…

oracle client linux服务器安装教程

p13390677_112040_Linux-x86-64_4of7.zip 安装前,确认/etc/hosts文件已配置正确 cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.2…

云和恩墨 zCloud 与华为云 GaussDB 完成兼容性互认证

近日,云和恩墨(北京)信息技术有限公司(以下简称:云和恩墨)的多元数据库智能管理平台 zCloud 与华为云计算技术有限公司(以下简称:华为云)的 GaussDB 数据库完成了兼容性互…

《计算机视觉:瓶颈之辩与未来之路》

一、计算机视觉的崛起 计算机视觉是使用计算机模仿人类视觉系统的科学,让计算机拥有类似人类提取、处理、理解和分析图像以及图像序列的能力。它是一个多学科交叉的领域,与机器视觉、图像处理、人工智能、机器学习等领域密切相关。 计算机视觉行业可分为…

iOS在项目中设置 Dev、Staging 和 Prod 三个不同的环境

在 Objective-C 项目中设置 Dev、Staging 和 Prod 三个不同的环境,并为每个环境使用不同的 Bundle ID,可以通过以下步骤实现: 步骤 1: 创建不同的 Build Configuration 打开项目: 启动 Xcode 并打开你的项目。 选择项目文件&…

6.3.1 MR实战:计算总分与平均分

在本次实战中,我们的目标是利用Apache Hadoop的MapReduce框架来处理和分析学生成绩数据。具体来说,我们将计算一个包含五名学生五门科目成绩的数据集的总分和平均分。这个过程包括在云主机上准备数据,将成绩数据存储为文本文件,并…

计算机毕业设计Python+Django农产品推荐系统 农产品爬虫 农产品商城 农产品大数据 农产品数据分析可视化 PySpark Hadoop

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

如何高效获取Twitter数据:Apify平台上的推特数据采集解决方案

引言 在数据分析和市场研究领域,Twitter(现在的X)数据一直是重要的信息来源。但是,自从Twitter更改API定价策略后,获取数据的成本大幅提升。本文将介绍一个经济实惠的替代方案。 为什么需要Twitter数据? …

Oracle 临时表空间管理与最佳实践

Oracle 临时表空间管理与最佳实践 内容摘要 本文深入探讨了Oracle数据库中临时表空间的管理和最佳实践。主要内容包括: 临时表空间的概述及其在Oracle 19c多租户架构中的特点临时表空间组的优势及其创建方法非临时表空间组的临时表空间日常维护操作命令临时表空间…

【论文笔记】Editing Models with Task Arithmetic

🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: Editing Models with Task…

下载红米Note 9 Pro5G对应的LineageOS代码下载及编译

构建 LineageOS 进入网站:Info about gauguin | LineageOS Wiki,点击:Build for yourself,里面有详细的教程,我这里就按照Note 9 Pro 5G来。 机器环境 Ubuntu环境为:20.04.6LinagesOS版本:21-…

四十六:如何使用Wireshark解密TLS/SSL报文?

TLS/SSL是保护网络通信的重要协议,其加密机制可以有效地防止敏感信息被窃取。然而,在调试网络应用或分析安全问题时,解密TLS/SSL流量是不可避免的需求。本文将介绍如何使用Wireshark解密TLS/SSL报文。 前提条件 在解密TLS/SSL报文之前&…

Git-分布式版本控制工具

目录 1. 概述 1. 1集中式版本控制工具 1.2分布式版本控制工具 2.Git 2.1 git 工作流程 1. 概述 在开发活动中,我们经常会遇到以下几个场景:备份、代码回滚、协同开发、追溯问题代码编写人和编写时间(追责)等。备份的话是为了…