当前位置: 首页 > news >正文

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部分学习完毕,并写下此次总结,我相信实力才是王牌.

相关文章:

JavaSe部分总结

我们先来了解一下Java语言,JavaSE是Java编程语言的标准版,主要是来学习Java的基本语法,书写方式,以及一些简单的逻辑循环和判断,包括一些关键字,特殊类(抽象类),特殊的方法(static修饰的方法,final修饰的方法)等等,最重要的是Java语言是比较C语言和C语言是比较简单的,Java是面向…...

iPhone批量删除照片的方法

对于每一个iPhone用户来说,照片管理是一项日常而重要的任务。随着时间的积累,无数的照片快速填满了我们的存储空间,从美丽的风景到重要的家庭聚会,每一张照片都记录着我们生活中的瞬间。然而,当存储空间即将耗尽时&…...

红日靶场vulnstack 7靶机的测试报告[细节](一)

目录 一、测试环境 1、系统环境 2、注意事项 3、使用工具/软件 二、测试目的 三、操作过程 1、信息搜集 2、Redis未授权访问漏洞获取web1靶机系统权限 3、获取docker靶机系统权限 ①Laravel框架漏洞利用getshell ②Laravel主机的提权&&docker容器逃逸 提权…...

ubuntu+ros新手笔记(二):古月·ROS2入门21讲学习笔记

系统ubuntu22.04 ros2 humble 按照如下视频教程学习的:【古月居】古月ROS2入门21讲 | 带你认识一个全新的机器人操作系统 此处仅记录我报错的地方,以及相应的解决方案,没有出错的略过! 对应的古月居ROS2入门21讲源码下载地址&a…...

Harmonyos之深浅模式适配

Harmonyos之换肤功能 概述实现原理颜色适配颜色资源配置工具类编写界面代码编写适配效果 概述 深色模式(Dark Mode)又称之为暗色模式,是与日常应用使用过程中的浅色模式(Light Mode)相对应的一种UI主题。 换肤功能应…...

牛客网 SQL2查询多列

SQL2查询多列 select device_id,gender,age,university //查询哪些字段 from user_profile //从哪个表中查找 每日问题 C 中面向对象编程如何处理异常? 在C中,面向对象编程(OOP)处理异常主要通过异常处理机制来实现。C 提供了…...

Angular由一个bug说起之十二:网页页面持续占用CPU过高

随着网络日益发达,网页的内容也更加丰富,形式也更加多样化。而随之而来的性能问题也不容小觑。这篇文章我会根据我在实践中遇到的一个问题来总结,我在面对性能问题的一些解决步骤,希望能对大家有所启发。 查找问题原因 我接触的…...

【从零开始入门unity游戏开发之——C#篇05】转义字符、@处理多行文本或者不使用转义字符、随机数

文章目录 一、转义字符1、什么是转义字符?2、常见的转义字符3、总结 二、使用处理多行文本或者不使用转义字符1、多行字符串2、不使用转义字符 三、随机数1、Random.Next()生成随机整数示例:生成一个随机整数生成指定范围内的随机整数 2、Random.NextSin…...

我们来对接蓝凌OA --报文格式

题记 数智化办公专家、国家高新技术企业、知识管理国家标准制定者、信创供应商10强…等等,这些和咱们有关系吗!!不好意思,走错片场了,刚和项目经理在甲方那边吹牛B想想刚刚的大饼,看看支付宝余额&#xff…...

旅游系统旅游小程序PHP+Uniapp

旅游门票预订系统,支持景点门票、导游产品便捷预订、美食打卡、景点分享、旅游笔记分享等综合系统 更新日志 V1.3.0 1、修复富文本标签 2、新增景点入驻【高级版本】3、新增门票核销【高级版】4、新增门票端口【高级版】...

Pytest-Bdd-Playwright 系列教程(15):背景(Background)

Pytest-Bdd-Playwright 系列教程(15):背景(Background) 前言一、什么是背景(Background)二、特性文件三、测试脚本四、运行测试总结 前言 在测试的过程中,我们往往会遇到这样的问题&…...

ionic V6 安装ios所需

npm install capacitor/ios添加ios平台 ruby要求3.0以上 rvm use ruby-3.1.0 --default npx cap add ios打开xcode看看创建的项目 npx cap open ios没有capacitor指定的位置, 估计之前pod(cocoapods)安装搞得Ruby环境很乱了......cocoapods整的我麻了... App/App/capacitor…...

3d模型展示-初探

由于工作原因,近一年没怎么写代码,有朋友问你做过3D模型展示吗,之前都是做以vue为框架做定制业务,这次抽时间试试3d模型展示。 软件功能 使用ThreeJS框架实现加载GLB模型,并添加动画效果,实现3d展示模型。…...

OpenLinkSaas 2025年1月开发计划

先来看看OpenLinkSaas的大目标 在OpenLinkSaas的产品目标中,让开发人员更加方便的使用云资源是目标之一。通过各大云厂商的API,来可视化云上基础设施的数据是远远不够的。我们准备在2025年1月份增加方便管理和运营研发场景下服务器的能力。 这部分的功能…...

C# 用封装dll 调用c++ dll 使用winapi

这里用c net 封装winapi函数 pch.h // pch.h: 这是预编译标头文件。 // 下方列出的文件仅编译一次,提高了将来生成的生成性能。 // 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。 // 但是,如果此处列出的文件中的任何一个…...

XML基础学习

参考文章链接: XML基础学习 在w3school看到了XML的教程,想到以前工作学习中也接触到了XML,但只是简单搜索了解了下,没有认真去学习XML的基础,所以现在认真看下其基础部分,并写篇博客作为笔记记录下。 XML 简介 XML 被设计用来传输和存储数据。 什么是 XML? XML 指可…...

Jmeter直连数据库,jar包下载

运行报错信息:jmeter连接mysql异常:Cannot load JDBC driver class ‘com.mysql.jdbc.Driver‘ 1、下载地址: https://mvnrepository.com/artifact/mysql/mysql-connector-java/ 2、将下载好的jar包 (我的是:mysql-con…...

Unity读取、新建Excel表格

把dll资源解压后,全部导入到unity中的Plugins文件下面 资源放在标题下方,可以自行下载 使用教程 引入命名空间 using SimpleExcel;。这个命名空间下主要有两个类:WorkBook和Sheet。WorkBook用于对整个excel文件的操作,如创建、打开…...

智能高效的IDE GoLand v2024.3全新发布——支持最新Go语言

GoLand 使 Go 代码的阅读、编写和更改变得非常容易。即时错误检测和修复建议,通过一步撤消快速安全重构,智能代码完成,死代码检测和文档提示帮助所有 Go 开发人员,从新手到经验丰富的专业人士,创建快速、高效、和可靠的…...

OpenCV相机标定与3D重建(21)投影矩阵分解函数decomposeProjectionMatrix()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将投影矩阵分解为旋转矩阵和相机内参矩阵。 cv::decomposeProjectionMatrix 是 OpenCV 库中的一个函数,用于将投影矩阵(…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层&#xf…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率&#xff0c…...