当前位置: 首页 > 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 库中的一个函数,用于将投影矩阵(…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

蓝桥杯 冶炼金属

原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合

作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...

Modbus RTU与Modbus TCP详解指南

目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能

指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...