Java必备小知识点1
Java程序类型: Applications和Applet
Applications:
是指在计算机操作系统中运行的程序。
是完整的程序,能独立运行。
被编译后,用普通的Java解释器就可以使其边解释边执行。
必定含有一个main方法,程序执行时,首先寻找main方法,并以此为入口点开始运行,含有main方法的类常被称为主类,因此Applications都含有一个主类。
必须另外编写专用代码来创建自己的图形界面。
Applet:
是为Internet上工作的Java小程序,支持Java的浏览器运行。
可以使用任何Java开发工具创建,但必须包含或嵌入到网页中去。
Applet不可以单独运行,必须依附在网页并嵌入其中,当网页显示在浏览器后,Applet就可以被加载并执行。
运行Applet程序的解释器不是独立的软件,而是嵌在浏览器中,作为浏览器的一部分。必须通过浏览器或者Applet Viewer才能执行。
没有含有main方法的主类(不能独立自主运行的原因)。
可以直接利用浏览器或者Applet Viewer提供的图形用户界面。
Java体系包括三大块:Java ME(java微型版)、Java SE(标准版)✔️、Java SE(企业版)
注释
无论是什么语言,什么程序,都可以command+/来直接出注释,也可以选中想选的部分,直接command+/注释掉
文档注释使用/**…*/进行标记,并写入Javadoc文档.文档注释用于生成HTML格式的代码报告,写在最前面. 使用Javadoc命令可以为代码生成类似Java API文档的HTML格式文档,代码中的文档注释会体现在此HTML文档中.文档注释可按照HTML语法进行修饰.
例如:<h1>main方法负责输出Hello</h1>
注释标签 | 说明 |
@auther | 对类的说明,标明开发该模块的作者 |
@version | 对类的说明,标明该模块的版本 |
@see | 对类,属性,方法的说明 |
@param | 对方法中某参数的说明 |
@return | 对方法返回值的说明 |
@exception | 对方法可能抛出的异常的说明 |
/**
*〈h1〉main方法负责输出Hello〈/h1〉
*@
*@
*/
平时单行注释可以使用//
块注释:/*…*/
文档注释:/**…*/
编译Java文件
可以选择在eclipse里编译Java,也可以在控制台(终端)上编译Java文件。
写e:然后敲回车(Java源文件在e盘里),文件在哪个盘里面,就c:,d:,e:→cd 下一步的文件名然后继续cd下一步的文件名(或者直接打开文件,然后复制路径,或者是cd+复制粘贴过来路径)
或直接在文件页面:按住shift键然后右键在此处打开,就可以了。
如果要一级级往上走,返回上一级的命令:cd.. 返回根目录的命令:cd \
在终端上使用javac对Java.Java文件进行编译生成java.class文件,再使用java命令对编译好的hello.class文件进行执行,终端上就会显示执行结果。
Java文件命名
java源文件的命名规则:
如果有public类,那么源文件名就是public类的类名(一个文件中只能有一个public类),而类名命名规则是:类的名字必须由大写字母开头而单词中的其他字母均为小写;
如果类名称由多个单词组成,则每个单词的首字母均应为大写,如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,命名类时应尽量选择名词。
如果没有public类,就和遵循文件名命名规则。
例如:以下代码中有两个类,且没有public类,在对该文件命名时,就可将文件名命名为Demo.java或Demo1.java。这个javac编辑后,会生成两个 以.class 结尾的文件,执行时可以java Demo或java Demo1,=》这说明一个源文件中可以存在多个类,每个类中都可以有main主方法。也就是说一个JAVA文件中可以有多个main方法。
class Demo
{public static void main(String[] args){System.out.println("Hello World");}
}
class Demo1
{public static void main(String[] args){System.out.println("Hello Java");}
}
执行java Demo,输出:Hello World
执行java Demo1,输出:Hello Java
包
不出意外,新生成的类里面会自动含有这一句:package com.dh.ch; 意思是该类属于ch包下的dh包下的com包。package:包
使用package关键字定义一个包,使用包可以对类进行组织,与其他来源代码库中的类分割开来,确保类名的唯一性,如果不指定所属的包,则此时类位于默认包中。即类在哪个包中创建,就属于哪一个包。
包可以分级,多级的包之间使用”.”进行分隔.(通常逆序来写). 例如上面的package com.dh.ch;
package 语句必须作为java源文件的第一句.一个java源文件中,最多只有一条package语句.但可以有多条 import 语句.
多个源文件可以定义相同的包。一个源文件只能属于一个包,但一个包里面可以有多个源文件。
包的导入:import包名.*;//*表示导入指定包中所有的类.
例如import java.uti.*;就表示导入uti.包中的所有类。
也可以在使用的类名前直接添加完整的包名.无需使用import导入包.
例如:
import mypackage . shool. Student;
Student tom = new Student ();
可以变成 mypackage. school. Student tom = new mypackage. school.Student();
在使用date这个Java里经常使用的类时,需要注意,看看需要哪个再导入哪个包。
java中同时存在两个Date类,但分别属于java.util和java.sql.
类
类的定义
1.[访问符][修饰符] class <类名>
访问符:用于声明类/属性/方法的访问权限, public protected private
修饰符:定义类的特性: abstract(抽象) static(静态) final(最终).
(在定义类的时候,修饰符不是必须的.)
2.类名不要忘记首字母大写
3.在面向对象时,定义类时,专门为描述对象提供一个类,该类不需要main方法.
访问修饰符
1.类前面只有public 和缺省(啥都不写)两种,没有其他的修饰符.
2.使用protected 访问修饰符时:允许类本身、同一包中的所有类、所有子类访问该类.
3.使用private访问修饰符只允许类本身中的其他成员访问,不能被类外看到.
3.缺省的可以被同一包中的所有类访问.(又称为包权限,不能被导入的包访问).
4.缺省(friendly) 不是关键字,只是一种称谓.
对象的创建
对象拥有属性和方法。
1、创建对象。
通过new关键字来创建该类型的对象(new用于为对象动态分配内存空间,只在运行时分配)
例如:Rectangle rectangle ;/*创建对象名,此时系统为引用类型变量rectangle分配内存空间.但只是定义了名为rectangle的变量,未进行初始化.*/
rectangle = new Rectangle(3,5); /*创建对象,并分配空间。先创建一个Rectangle类型的对象,为新对象分配内存空间来存储该对象的所有属性,并默认初始化.*/
或Rectangle rectangle = new Rectangle();//这样就new出了一个名叫rectangle的对象。
1、rectangle
空 |
2、Rectangle
空 |
OX1b1c6(是rectangle的地址)
Rectangle |
Width = 0 Length = 0 (初始化之前) |
|
(执行构造方法时,width和length的值会变成3和5.接下来rectangle 箭头指向OX1b1c6)
如果不想给对象分配内存空间,则Rectangle rectangle = null;(可以将null赋给引用类型变量(Object),但是不可以赋给基本类型变量(int) ),null还可以用来释放内存,即将变量指向null;
2、使用对象
使用对象时,用” . ”来访问.
//访问对象的属性 :对象名.属性
//访问对象的方法 : 对象名.方法名();
//若方法由static 关键字修饰,调用方式: 类名.方法名()
3、构造方法
构造方法是一种特殊的方法,用于当对象被创建时初始化对象中的属性,即可以给对象赋值.
构造方法的名字必须与其所在类的名字相同,且没有返回类型.

4、类的方法
[访问符][修饰符]<返回类型> 方法名 ([参数列表]){
//方法体
}
方法的返回类型是该方法运行后返回值的数据类型.
5、抽象类
抽象类:在普通类的基础上扩充了一些抽象方法(0~n)的类(抽象类是普通类的超集),使用abstract关键字定义。抽象类不能直接产生实例化对象,因为抽象类是“半成品”,无法直接使用。不能直接new
抽象方法:使用abstract 关键字定义并且没有方法体(方法后面的()就是方法体)的方法。抽象方法所在类一定是抽象类。
6、static类
在Java中,可以将一些成员限制为“类相关”的。如果不是“类相关“,则其使用必须要通过声明实例来完成。“类相关”就是在类的成员前面加上“static”关键字,从而直接通过类名访问。
与类相关的变量与方法称为类变量或类方法,类变量和类方法也称为静态变量和静态方法.与实例相关的变量与方法称为实例变量与实例方法。
静态变量用的比较少,但静态常量经常使用。
例public static final String PASSWORD = “12345”;
在Java中,类的静态变量和静态方法在内存中只有一份,为该类的所有对象共用,访问时,可通过类名。
7、实例化对象
实例化对象,就是创建对象的过程.如果类是静态类,则可以直接调用类中的方法进行创建. 如果类不是静态类,则需要用对象引用,对象new出来.即A a = new A(); a. CallMethod(); (先new出来a,在a.方法名())
new A()就是实例化对象.
对象放在堆里面,但对象名称是放在栈里面的。
对实例进行解析
java程序是由类组成的,java应用程序必须有一个包含main方法的public类,main方法是程序的入口;
一个java文件最多只能有1个public class(暗示可以没有)。
package text;public class Text {publicstaticvoid main(String[] args) {// TODO Auto-generated method stubSystem.out.println("Hello");}
}
第一行package关键字说明该类在text包中。
第三行 class表明这是一个类,前面有public,则说明是公共类,整个文件都可以访问的它。那么源文件名就会是Text.java(源文件名要和公共类的类名完全一致)。
这个类里面只有一个方法——main()方法,C语言的函数,在Java里叫做方法。回归类型是void。
相关文章:

Java必备小知识点1
Java程序类型: Applications和AppletApplications:是指在计算机操作系统中运行的程序。是完整的程序,能独立运行。被编译后,用普通的Java解释器就可以使其边解释边执行。必定含有一个main方法,程序执行时,首先寻找main方法&#x…...
JavaScript作用域、闭包
文章目录作用域、作用域链作用域作用域链循环中的作用域自由变量、闭包自由变量闭包的定义、表现、应用如何确定在闭包中获取正确的变量总结作用域、作用域链 作用域 编程语言中存储、访问、修改变量当中的值是一项基本能力、存储变量、访问变量必须按照一定的规则࿰…...
JavaScript Date(日期) 对象
JavaScript Date 对象是 JavaScript 中用于处理日期和时间的内置对象。它可以用于获取当前时间、设置日期和时间、计算日期和时间之间的差异、以及将日期和时间格式化为各种字符串格式。在本文中,我们将详细介绍 JavaScript Date 对象的作用和在实际工作中的用途。 …...
rust过程宏 proc-macro-workshop解题-4-sorted
名字版本号rust1.69.0OSubuntu 22.04这一大关卡介绍的是属性式过程宏。 第一关:01-parse-enum 还是简单的看我们是否已经实现了一个属性式过程宏的空架子,如果有这个空架子,就直接通过了。 use proc_macro::TokenStream; use proc_macro2; use syn;#[proc_macro_attribut…...

数据结构与算法—队列
队列 队列介绍 有序列表,可以用数组或者链表实现。遵循先进先出原则。 数组实现队列 public class ArrayQueue {public static void main(String[] args) {ArrayQueue queue new ArrayQueue(3);// 接收用户输入char key ;Scanner sc new Scanner(System.in);…...

AcWing3416.时间显示——学习笔记
目录 题目 代码 AC结果 思路 关键步骤 题目 3416. 时间显示 - AcWing题库https://www.acwing.com/problem/content/description/3419/ 代码 import java.util.Scanner;public class Main {public static void main(String[] args){Scanner input new Scanner(System.in…...
贴吧手机端防删图GIF动态图制作解析
贴吧存活 思路技术运气 1:防删图不是存活的绝对因素,除了防删图,还有账号,ip,内容,吧的问题 2:一个图不是每个吧都可以发 3:一个贴不被删不仅仅看图片 4:有时候运气也很…...

iOS接入Google登录
1.在Google Cloud后台配置客户端ID 首先要在 Google Cloud 中创建一个项目。新创建的Project需要先配置同意屏幕。一共有4步骤需要配置。 1.OAuth 同意屏幕 User Type选择"外部"进行创建。填写必必要的信息,应用名称、用户支持电子邮件地址、开发者电子邮…...

【C语言】大小端字节序问题
一、大小端字节序问题 大小端是由CPU决定的,大小端可以理解为字节顺序,所以大小端全称叫大端字节序、小端字节序。其实大端、小端这两个词是从《格列佛游记》里出来的。《格列佛游记》有一段讲的是吃鸡蛋是从大的那头敲开还是小的那头敲开的问题…...

Linux | 网络通信 | 序列化和反序列化的讲解与实现
文章目录为什么要序列化?协议的实现服务端与客户端代码实现为什么要序列化? 由于默认对齐数的不同,不同的平台对相同数据进行内存对齐后,可能得到不同的数据。如果直接将这些数据进行网络传输,对方很可能无法正确的获…...

C#的委托原理刨析and事件原理刨析和两者的比较
什么是委托委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。 在实例化委托时,你可以将其实例与任何具有兼容参数和返回类型的方法进行绑定。 你可以通过委托实例调用方法。简单的理解,委托是方法的抽象类,它定…...

Redis学习【8】之Redis RDB持久化
文章目录Redis 持久化1 持久化基本原理2 RDB(Redis DataBase) 持久化2.1 持久化的执行2.2 手动 save 命令2.3 手动 bgsave 命令2.4 自动条件触发2.5 查看持久化时间3 RDB 优化配置3.1 save3.2 stop-write-on-bgsave-error3.3 rdbcompression3.4 rdbchecksum3.5 sanitize-dump-p…...

SpringSecurity认证
文章目录登陆校验流程依赖yaml实现建表、工具类、实体类加密器、AuthenticationManager登录逻辑登录过滤器、配置过滤器登出登陆校验流程 认证 登录: ①自定义登录接口 调用ProviderManager的方法进行认证 如果认证通过生成token,根据userId把用…...

Socket套接字
概念 Socket套接字,是由系统提供用于网络通信的技术,是基于TCP/IP协议的网络通信的基本操作单元。基于Socket套接字的网络程序开发就是网络编程。 分类 Socket套接字主要针对传输层协议划分为如下三类: 流套接字:使用传输层TCP…...

mysql详解之innoDB
索引 Mysql由索引组织,所以索引是mysql多重要概念之一。 聚簇索引 InnoDB和MyISAm一样都是采用B树结构,但不同点在于InnoDB是聚簇索引(或聚集索引),将数据行直接放在叶子节点后面。 这里可能存在一个误区࿱…...
电信运营商的新尝试:探索非通信领域的发展
近年来,随着电信运营商竞争的日趋激烈和网络建设的成本不断攀升,许多电信运营商已经开始缩减IT投资。然而,在如此情况下,电信运营商仍然需要寻找新的增长机会。那么,在持续缩减IT投资的情况下,电信运营商可…...

第07章_单行函数
第07章_单行函数 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. 函数的理解 1.1 什么是函数 函数在计算机语言的使用中贯穿始终,函数的作用是什么呢?它可以把我们经…...

Echarts实现多柱状图重叠重叠效果
有两种重叠效果: 1. 多个柱子重叠为一个 2. 多个柱子重叠为两组 第一种,图例: 这个灰色不是阴影哦, 是柱子. 1. 使用详解 (1) series.Z 折线图组件的所有图形的 z 值。控制图形的前后顺序。 z 值小的图形会被 z 值大的图形覆盖。z 相比 zlevel 优先级更低,而且不会…...

PHP学习笔记(一谦四益)
前言 上一篇文章 PHP学习笔记(观隅反三)分享了数组的知识,这篇文章接着分享和数组相关的算法。 算法效率 算法效率分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称…...

Jvm -堆对象的划分
堆对于一个jvm进程来说是唯一的,一个进程只有一个jvm,但是进程半酣多个线程,多个线程共享一个堆。 也就是说,一个jvm实例只存在一个堆,同时对也是Java内存管理的核心区域。 Java堆区域的大小在jvm启动时就已经被确定…...

Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...