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

Java必备小知识点1

  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(企业版)

  1. 注释

  1. 无论是什么语言,什么程序,都可以command+/来直接出注释,也可以选中想选的部分,直接command+/注释掉

  1. 文档注释使用/**…*/进行标记,并写入Javadoc文档.文档注释用于生成HTML格式的代码报告,写在最前面. 使用Javadoc命令可以为代码生成类似Java API文档的HTML格式文档,代码中的文档注释会体现在此HTML文档中.文档注释可按照HTML语法进行修饰.

例如:<h1>main方法负责输出Hello</h1>

注释标签

说明

@auther

对类的说明,标明开发该模块的作者

@version

对类的说明,标明该模块的版本

@see

对类,属性,方法的说明

@param

对方法中某参数的说明

@return

对方法返回值的说明

@exception

对方法可能抛出的异常的说明

/**

*〈h1〉main方法负责输出Hello〈/h1〉

*@

*@

*/

  1. 平时单行注释可以使用//

块注释:/*…*/

文档注释:/**…*/

  1. 编译Java文件

可以选择在eclipse里编译Java,也可以在控制台(终端)上编译Java文件。

写e:然后敲回车(Java源文件在e盘里),文件在哪个盘里面,就c:,d:,e:→cd 下一步的文件名然后继续cd下一步的文件名(或者直接打开文件,然后复制路径,或者是cd+复制粘贴过来路径)

或直接在文件页面:按住shift键然后右键在此处打开,就可以了。

如果要一级级往上走,返回上一级的命令:cd.. 返回根目录的命令:cd \

在终端上使用javac对Java.Java文件进行编译生成java.class文件,再使用java命令对编译好的hello.class文件进行执行,终端上就会显示执行结果。

  1. Java文件命名

java源文件的命名规则:

  1. 如果有public类,那么源文件名就是public类的类名(一个文件中只能有一个public类),而类名命名规则是:类的名字必须由大写字母开头而单词中的其他字母均为小写;

  1. 如果类名称由多个单词组成,则每个单词的首字母均应为大写,如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,命名类时应尽量选择名词。

  1. 如果没有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

  1. 不出意外,新生成的类里面会自动含有这一句:package com.dh.ch; 意思是该类属于ch包下的dh包下的com包。package:包

  1. 使用package关键字定义一个包,使用包可以对类进行组织,与其他来源代码库中的类分割开来,确保类名的唯一性,如果不指定所属的包,则此时类位于默认包中。即类在哪个包中创建,就属于哪一个包。

  1. 包可以分级,多级的包之间使用”.”进行分隔.(通常逆序来写).   例如上面的package com.dh.ch;

  1. package 语句必须作为java源文件的第一句.一个java源文件中,最多只有一条package语句.但可以有多条 import 语句.

  1. 多个源文件可以定义相同的包。一个源文件只能属于一个包,但一个包里面可以有多个源文件。

  1. 包的导入: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. 类的定义

1.[访问符][修饰符] class <类名>

访问符:用于声明类/属性/方法的访问权限, public protected private

修饰符:定义类的特性: abstract(抽象) static(静态) final(最终).

(在定义类的时候,修饰符不是必须的.)

2.类名不要忘记首字母大写

3.在面向对象时,定义类时,专门为描述对象提供一个类,该类不需要main方法.

访问修饰符

1.类前面只有public 和缺省(啥都不写)两种,没有其他的修饰符.

2.使用protected 访问修饰符时:允许类本身、同一包中的所有类、所有子类访问该类.

3.使用private访问修饰符只允许类本身中的其他成员访问,不能被类外看到.

3.缺省的可以被同一包中的所有类访问.(又称为包权限,不能被导入的包访问).

4.缺省(friendly) 不是关键字,只是一种称谓.

  1. 对象的创建

对象拥有属性和方法。

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()就是实例化对象.

对象放在堆里面,但对象名称是放在栈里面的。

  1. 对实例进行解析

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:是指在计算机操作系统中运行的程序。是完整的程序&#xff0c;能独立运行。被编译后&#xff0c;用普通的Java解释器就可以使其边解释边执行。必定含有一个main方法&#xff0c;程序执行时&#xff0c;首先寻找main方法&#x…...

JavaScript作用域、闭包

文章目录作用域、作用域链作用域作用域链循环中的作用域自由变量、闭包自由变量闭包的定义、表现、应用如何确定在闭包中获取正确的变量总结作用域、作用域链 作用域 编程语言中存储、访问、修改变量当中的值是一项基本能力、存储变量、访问变量必须按照一定的规则&#xff0…...

JavaScript Date(日期) 对象

JavaScript Date 对象是 JavaScript 中用于处理日期和时间的内置对象。它可以用于获取当前时间、设置日期和时间、计算日期和时间之间的差异、以及将日期和时间格式化为各种字符串格式。在本文中&#xff0c;我们将详细介绍 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…...

数据结构与算法—队列

队列 队列介绍 有序列表&#xff0c;可以用数组或者链表实现。遵循先进先出原则。 数组实现队列 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&#xff1a;防删图不是存活的绝对因素&#xff0c;除了防删图&#xff0c;还有账号&#xff0c;ip&#xff0c;内容&#xff0c;吧的问题 2&#xff1a;一个图不是每个吧都可以发 3&#xff1a;一个贴不被删不仅仅看图片 4&#xff1a;有时候运气也很…...

iOS接入Google登录

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

【C语言】大小端字节序问题

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

Linux | 网络通信 | 序列化和反序列化的讲解与实现

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

C#的委托原理刨析and事件原理刨析和两者的比较

什么是委托委托是一种引用类型&#xff0c;表示对具有特定参数列表和返回类型的方法的引用。 在实例化委托时&#xff0c;你可以将其实例与任何具有兼容参数和返回类型的方法进行绑定。 你可以通过委托实例调用方法。简单的理解&#xff0c;委托是方法的抽象类&#xff0c;它定…...

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登录逻辑登录过滤器、配置过滤器登出登陆校验流程 认证 登录&#xff1a; ​ ①自定义登录接口 ​ 调用ProviderManager的方法进行认证 如果认证通过生成token&#xff0c;根据userId把用…...

Socket套接字

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

mysql详解之innoDB

索引 Mysql由索引组织&#xff0c;所以索引是mysql多重要概念之一。 聚簇索引 InnoDB和MyISAm一样都是采用B树结构&#xff0c;但不同点在于InnoDB是聚簇索引&#xff08;或聚集索引&#xff09;&#xff0c;将数据行直接放在叶子节点后面。 这里可能存在一个误区&#xff1…...

电信运营商的新尝试:探索非通信领域的发展

近年来&#xff0c;随着电信运营商竞争的日趋激烈和网络建设的成本不断攀升&#xff0c;许多电信运营商已经开始缩减IT投资。然而&#xff0c;在如此情况下&#xff0c;电信运营商仍然需要寻找新的增长机会。那么&#xff0c;在持续缩减IT投资的情况下&#xff0c;电信运营商可…...

第07章_单行函数

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

Echarts实现多柱状图重叠重叠效果

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

PHP学习笔记(一谦四益)

前言 上一篇文章 PHP学习笔记&#xff08;观隅反三&#xff09;分享了数组的知识&#xff0c;这篇文章接着分享和数组相关的算法。 算法效率 算法效率分为两种&#xff1a;第一种是时间效率&#xff0c;第二种是空间效率。时间效率被称为时间复杂度&#xff0c;而空间效率被称…...

Jvm -堆对象的划分

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

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...

离线语音识别方案分析

随着人工智能技术的不断发展&#xff0c;语音识别技术也得到了广泛的应用&#xff0c;从智能家居到车载系统&#xff0c;语音识别正在改变我们与设备的交互方式。尤其是离线语音识别&#xff0c;由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力&#xff0c;广…...

跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践

在电商行业蓬勃发展的当下&#xff0c;多平台运营已成为众多商家的必然选择。然而&#xff0c;不同电商平台在商品数据接口方面存在差异&#xff0c;导致商家在跨平台运营时面临诸多挑战&#xff0c;如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...