SE语法总结博文(附思维导图)

news2024/10/6 8:38:42

Java中的规范

注释

//单行注释
/*
	多行注释
*/
/**
	文档注释
*/

命名规范

命名时可以包含:字母、数字以及 下划线和 $ 符号等等。
但是不能以数字开头,也不能是关键字,且严格区分大小写。
类名:每个单词的首字母大写(大驼峰);
方法名:首字母小写,后面每个单词的首字母大写(小驼峰);
变量名:也用小驼峰;
包名:也用小驼峰;
接口名:大驼峰,一般加上首个字母写大写I;
异常名:大驼峰,一般最后以单词Exception结尾。

数据类型与变量

具体介绍在这篇文章:数据类型与变量详解

八大基本数据类型

整数:byte short int long;
浮点数:float double;
字符:char;
布尔类型:boolean;
除了int和char的包装类是Integer和character,其它都是将首字母大写,如long对应Long。

引用数据类型

类class;接口interface;数组[ ];字符串变量String。

变量

简单说一下规则:

访问修饰限定符 数据类型 变量名 =

如果是引用数据类型在等号后面就跟相应的实例化
是基本数据类型直接赋值就行

运算符

运算符的详细解析在这篇文章:运算符详解

算数运算符

加: +
减 :-
乘:*
除:/
取余:%
在除法时两边为整数结果为整数,Java中小数可以取余。

增量运算符

+=,-=,*=,/=,%=。
其实就是对算数运算符使用的一个简写,如a = a + 10和a += 10两个等价。

自增/减运算符

++ ,–。
口诀:前置先加加/减减,在运算;后置置先运算,再加加/减减。

关系运算符

相等 ==
不等 !=
大于 >
小于 <
大于等于 >=
小于等于 <=

逻辑运算符

逻辑与 &&
逻辑或 ||
逻辑非 !
注意逻辑短路现象,就是逻辑运算符两边的表达式只执行前面就决定了值,后面表达式就不会执行。

位运算符

按位与 & :对应位有0就是0
按位或 | :对应位有1就是1
按位异或 ^ :对应位相同位0,不同为1
按位取反 ~ :0,1互换

移位运算符

左移 <<
右移 >>
无符号右移 >>>

条件运算符(3目运算符)

表达式1?表达式2:表达式3

程序逻辑控制

程序逻辑控制的详细解析在这篇文章:程序逻辑控制详解

顺序结构

分支结构

if-else语句,switch-case语句。

循环结构

while循环,do-while循环,for循环。注意continue(除该次循环进入下一次)和break(出循环)的区别。

方法

详解方法在这篇文章:方法详解

方法定义格式

修饰符 返回值类型 方法名(参数表列){
}

方法重载

方法名同,参数一定要有不同,返回值无关。

递归

自己调用自己,使用时注意结束条件。

数组

详细讲解数组在这篇文章:数组详解

定义格式

类型 [] 数组名 = ;
在等号右边3种方式
1.{}
2.new 类型[]{}
3.new 类型[]          //长度不能省

二维数组定义格式

类型 [][] 数组名 = ;
在等号右边3种方式:
1.{{},{},{},······}
2.new 类型[][]{{},{},{},······}
3.new 类型[][]     //行不能省

遍历

使用循环遍历。

类和对象

类与对象的详解写了多篇文章,在写到具体内容时再给出详解文章链接。

类定义格式,类实例化

类定义以及实例化详解文章:类定义,实例化详解

class 类名{
	//成员变量
	//成员方法
}

通过new关键字实例化对象。

this引用

我们通常在类中成员方法用this来引用当前成员,防止成员与形参同名报错。

构造方法

方法名与类名一样的成员方法,在实例化对象时会自动调用。

封装

详细介绍封装在这篇文章:封装详解
封装就是访问限定修饰符给的不一样,让类,类的成员的访问权限不一样。

访问修饰限定符

private,default,protected,public。
在这里插入图片描述

static关键字

就记住static修饰的不依赖对象就行。

继承

详解继承在这篇文章:详解继承
继承之间使用关键字extends,子类会继承父类的一切。如果一个类不希望被继承就使用final修饰。

super

子类调用父类成员可以使用关键字super。

多态

向上转型和向下转型

将子类向父类转型为向上转型。

将父类向子类转型(强转)为向下转型。
向下转型要注意父类(有多个子类)是该子类转型过来的,一般使用instanceof关键字来判断。

重写

重写的格式:方法名,参数表列,返回类型(可以是父子类关系)都要相同。
重写的条件:继承体系下,方法不被private,static,final修饰;重写方法权限>=被重写方法。
重写重载区别:
在这里插入图片描述

抽象类

详解抽象类在这篇文章:抽象类详解

abstract关键字

被abstract修饰的类叫抽象类,修饰的方法叫抽象方法。
抽象类与普通类的区别就是可以包含抽象方法。

抽象方法

抽象方法可以没有具体实现,但是被子类继承一定要被重写。

因为抽象方法是必须被重写的,所以重写条件也适用。

接口

详解接口在这篇文章:接口详解

interface关键字

使用interface关键字修饰类就是接口,
‘子类’用implement实现接口。

接口特性

里面的方法默认为public abstract修饰。只能有default修饰的具体方法,JDK9后可以有private修饰的方法。
接口不能被实例化。

内部类

详解内部类在这篇文章:内部类详解

静态内部类,实例内部类,局部内部类,匿名内部类。

比较器

详解比较器在这篇文章:比较器详解

Comparable接口

一般要实现Comparable接口,重写CompareTo方法来比较。

Comparator接口

实现Comparator接口然后重写compare方法就可以实现自己的比较条件。

深拷贝与浅拷贝

详解深拷贝与浅拷贝在这篇文章:深拷贝与浅拷贝详解

拷贝都要实现Cloneable接口。
深拷贝与浅拷贝的区别就是深拷贝是重新开辟空间,浅拷贝是直接指向原来的空间。

String常用操作

详解String常用操作在这篇文章:String常用操作详解

要记住对String的改变都不会对原字符串进行改变。

异常

详解异常常用操作在这篇文章:

异常分类:运行时异常和编译时异常。

throw抛异常,try捕获异常,catch处理异常。

自定义异常:实现类然后继承运行时异常(RunTimeException)或 编译时异常(Exception)。

思维导图

在这里插入图片描述

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

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

相关文章

springboot优雅shutdown时异步线程安全优化

前面针对graceful shutdown写了两篇文章 第一篇&#xff1a; https://blog.csdn.net/chenshm/article/details/139640775 只考虑了阻塞线程&#xff0c;没有考虑异步线程 第二篇&#xff1a; https://blog.csdn.net/chenshm/article/details/139702105 第二篇考虑了多线程的安全…

Rewrite the Stars

文章目录 摘要1、引言2、相关工作3、重写星操作3.1、单层中的星操作3.2、扩展到多层3.3、特殊情况3.4、实证研究3.4.1、星操作的实证优越性3.4.2、决策边界对比3.4.3、扩展到无激活函数的网络 3.5、开放讨论与更广泛的影响 4、概念验证&#xff1a;StarNet4.1、StarNet架构4.2、…

HDU - 5651 xiaoxin juju needs help(Java JS Python C C++)

题目来源 Problem - 5651 (hdu.edu.cn) 题目描述 众所周知&#xff0c;小新是一位才华横溢的程序员。当他还是小学六年级的学生时&#xff0c;他就知道回文字符串了。 今年夏天&#xff0c;他在腾讯实习。一天&#xff0c;他的领导来找小新帮忙。他的领导给了他一个字符串&a…

LabVIEW程序的常见加密方式

LabVIEW程序的加密对于保护知识产权和敏感数据至关重要。本文将详细介绍LabVIEW程序常用的加密方式&#xff0c;包括VI加密、代码保护、文件加密和通信加密等&#xff0c;帮助开发者选择合适的加密方法来确保程序的安全性和完整性。 LabVIEW程序的常见加密方式 VI加密&#xf…

Fiddler抓包工具介绍

下载 下载:Web Debugging Proxy and Troubleshooting Tools|Fiddler 进去要填一个表 汉化版 百度网盘 请输入提取码 提取码&#xff1a;xq9t 下载过附件之后分别把两个文件 点开fiddler就ok了 配置https fiddler要想抓到https包(解密的),点击tools->options勾选三个对…

做好程序前设计

不要小看任何一道编程题目&#xff01;一定一定一定要想好之后再动手&#xff01;&#xff01;&#xff01; 带上你的草稿本&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xf…

DP:01背包问题

一、背包问题的概述 背包问题是⼀种组合优化的NP完全问题。 本质上是为了找出“带有限制条件的组合最优解” 1、根据物品的个数&#xff0c;分为如下几类&#xff1a; • 01背包问题&#xff1a;每个物品只有⼀个&#xff08;重点掌握&#xff09;• 完全背包问题&#xff1…

牛客热题:最长上升子序列(一)

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;力扣刷题日记 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 文章目录 牛客热题&#xff1a;最长上升子序列(一)题目链接方法…

用PHP来调用API给自己定制一个“每日新闻”

头条新闻汇聚了互联网上的时事动态&#xff0c;提供最新新闻动态、网络热门话题和视频更新等&#xff0c;覆盖社会、政治、体育、经济、娱乐、科技等多个领域&#xff0c;并不断刷新内容。企业应用这一接口后&#xff0c;可以快速吸引更多的用户访问自己的平台。即使是非新闻类…

WINUI——CommunityToolkit.Mvvm Messenger接收消息时报错:Cannot access a disposed object.

背景 WINUI开发时使用CommunityToolkit.Mvvm的Messemger让UI展示一些信息时出现错误&#xff1a; System.ObjectDisposedException:“Cannot access a disposed object. ObjectDisposed_ObjectName_Name” 详细见下述截图&#xff1a; 开发环境 WIN11 WINUI&#xff13; …

微信小程序开发系列(三十五)·自定义组件的属性properties

微信小程序开发系列&#xff08;三十四&#xff09;自定义组件的创建、注册以及使用&#xff08;数据和方法事件的使用&#xff09;_wx小程序组件开发-CSDN博客 目录 1. 组件的属性 2. 组件的使用 3. 细节描述 1. 组件的属性 Properties是指组件的对外属性&#xff0c;主…

Nginx之静态文件服务器的搭建

1.概述 静态文件服务器是指提供HTML文件访问或客户端 可直接从中下载文件的Web服务器。对于图片、 JavaScript或CSS文件等渲染页面外观的、不会动态改 变内容的文件&#xff0c;大多数网站会单独提供以静态文件服 务器的方式对其进行访问&#xff0c;实现动静分离的架构。 HTML…

ReactNative和Android通信

初始化一个RN项目以后&#xff0c;接下来想要让Android与React Native通信 写一个继承自ReactContextBaseJavaModule类的子类&#xff0c;重写getName方法 package com.awesomeprojectimport android.util.Log import android.widget.Toast import com.facebook.react.bridge.…

Java并发自测题

文章目录 一、什么是线程和进程?线程与进程的关系,区别及优缺点&#xff1f;二、为什么要使用多线程呢?三、说说线程的生命周期和状态?四、什么是线程死锁?如何预防和避免线程死锁?五、synchronized 关键字六、并发编程的三个重要特性七、JMM &#xff08;Java Memory Mod…

Android 自定义View

我们所有的试图都是起源于自定义View&#xff0c;包括ViewGroup也是继承于它&#xff0c;可以说它是视图组件之父。 我们可以从它的大致流程来分为四个部分&#xff1a; 构造方法&#xff0c;onMeasure&#xff0c;onLayout&#xff0c;onDraw 构造方法&#xff1a; 它主要有…

Java | Leetcode Java题解之第160题相交链表

题目&#xff1a; 题解&#xff1a; public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if (headA null || headB null) {return null;}ListNode pA headA, pB headB;while (pA ! pB) {pA pA null ? headB : pA.next;pB …

Springmvc接收请求参数

如果你觉得这种限制很麻烦&#xff0c;你可以改为String 因为所有参数在接收的时候原值都是字符串

Mac | 崩溃分析

一、dump分析 1. 导入符号&#xff1a; ./import_pdb.sh libmedia_stream_ext.dylib.dSYM ./import_pdb.sh libowcr.framework.dSYM 2. 分析dump&#xff1a; ./analyze_dump.sh AE59D64F-0E1D-4A18-8DAF-C2C4D22F9FA6.dmp 3. 第 2 步骤 中会输出崩溃模块、崩溃线程及堆栈…

使用 Python 进行测试(5)测试的类型

总结 和我一起唱&#xff01; 冒烟测试&#xff0c;让你快速失败&#xff1b; 回归测试&#xff0c;不打破过去&#xff1b; 健全性检查&#xff0c;保留所拥有&#xff1b; 集成测试&#xff0c;处理副作用&#xff1b; 端到端&#xff0c;永无尽头&#xff01; 回测&#xf…

SwiftUI 6.0(Xcode 16)全新 @Entry 和 @Previewable 宏让开发妙趣横生

概览 如火如荼的 WWDC 2024 已进入第五天&#xff0c;苹果开发平台中众多海量新功能都争先恐后的喷薄欲出。 在这里就让我们从中挑两个轻松有趣的新功能展示给小伙伴们吧&#xff1a;它们分别是 全新的 Entry 和 Previewable 宏。 在本篇博文中&#xff0c;您将学到如下内容&a…