Java必备小知识点1

news2024/11/18 7:35:47
  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 stub
		System.out.println("Hello");
	}
}

第一行package关键字说明该类在text包中。

第三行 class表明这是一个类,前面有public,则说明是公共类,整个文件都可以访问的它。那么源文件名就会是Text.java(源文件名要和公共类的类名完全一致)。

这个类里面只有一个方法——main()方法,C语言的函数,在Java里叫做方法。回归类型是void。

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

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

相关文章

IDEA中如何配置SpringBoot项目多实例不同端口运行

1 问题场景 我们在进行新项目开发的时候&#xff0c; 可能做完一个新的模块功能并自测通过之后&#xff0c; 我们希望测试人员能帮我跑一些单元测试用例来进行测试验证&#xff0c; 但是我们又需要在此基础上技术开发新的功能&#xff0c; 这是我们就需要在我们的开发PC上同时…

Prometheus监控案例-kube-state-metrics

kube-state-metrics组件介绍 kube-stste-metrics项目地址&#xff1a;https://github.com/kubernetes/kube-state-metrics kube-stste-metrics是一个简单的组件&#xff0c;通过监听API Server生成有关资源对象的状态指标&#xff08;例如Deployment、Pod、Node等&#xff09…

HiEV洞察 | 卖一台亏半台,激光雷达第一股禾赛隐忧仍在

作者 | 感知君Alex 编辑 | 王博2月9日晚&#xff0c;禾赛在万众瞩目下登陆纳斯达克&#xff0c;发行价19美元每股&#xff0c;首日涨超11%&#xff0c;市值超过Luminar&#xff0c;登顶全球市值最高的激光雷达公司。 随后两个交易日&#xff0c;其股价均有不同程度的涨幅&#…

08- 汽车产品聚类分析综合项目 (机器学习聚类算法) (项目八)

项目难点 主要通过聚类算法 kmeans 进行调整 . 需要找出分为几类时模型参数最佳 . (n_clusters)找出性价比较高的车 获取训练数据: train_X data.drop([car_ID,CarName],axis 1)计算模型的得分和误差: kmeans.inertia_ # inertia簇内误差平方和 from sklearn.cluster i…

【深度学习/机器学习】为什么要归一化?归一化方法详解

【深度学习/机器学习】为什么要归一化&#xff1f;归一化方法详解 文章目录1. 介绍1.1 什么是归一化1.2 归一化的好处2. 归一化方法2.1 最大最小标准化&#xff08;Min-Max Normalization&#xff09;2.2 Z-score标准化方法2.3 非线性归一化2.4 L范数归一化方法&#xff08;最典…

宝塔搭建实战人才求职管理系统admin前端vue源码(二)

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。 上一期给大家分享骑士cms后台端在宝塔的搭建部署方式&#xff0c;这套系统是前后端分离的架构&#xff0c;前端是用vue2开发的&#xff0c;还需要在本地打包手动发布上宝塔&#xff0c;所以本期给大家分享&#x…

智能笔式万用表简单体验加拆解 - VC6012C - 智能电笔

简而言之&#xff0c;能用&#xff0c;甚至还挺好用的&#xff0c;机身大小参考上面的示意图&#xff0c;跟比较粗的记号笔差不多。单纯想买个万用表的话&#xff0c;如果不追求这种精简的外形&#xff0c;同价位有其他功能更强的选项。其实就是个能自动切换档位的智能万用表加…

山东大学软件学院面向对象简答题整理【个人向】

面向对象简答题整理【个人向】 0.试用面向对象语言简述改写和重定义的异同&#xff0c;以及方法绑定时的差别 改写是子类的方法和父类的方法具有相同的方法名和类型签名重定义是子类的方法和父类的方法方法名相同但类型签名不同在方法绑定时&#xff0c;改写是动态绑定&#…

kettle开发-Day38-其实chatGPT一直在身边

前言&#xff1a;最近chatGPT火出圈&#xff0c;其实不是chatGPT多智能&#xff0c;只是它用了一种新的交互方式来组织我们现有的知识&#xff0c;然后通过“高智商”的表达来使我们惊艳。但是目前或者未来的人工智能缺少创造力&#xff0c;他们只会整合信息目的是提高我们的效…

力扣sql简单篇练习(十八)

力扣sql简单篇练习(十八) 1 报告的记录 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT extra report_reason,count(distinct post_id) report_count FROM Actions WHERE action_dateDATE_SUB(2019-07-05,interval 1 day) AND extra IS NOT N…

突破监管“困局”,ScanV为您提供重保安全监测保障!

三月重保即将开始&#xff0c;重保期间是重要时间区间、重要基础设施和重要业务系统安全保障的“三重”考验期。 作为基于实战的网络安全提供商&#xff0c;知道创宇ScanV为您提供三月重保期间免费安全监测保障&#xff0c;并专门针对监管客户重保时期需求提供实战化监测保障方…

GGX发布全新路线图,揭示具备 Layer0 特性且可编程的跨链基建生态

据彭博社报道&#xff0c;具备跨链通信且可编程的 Layer0 基础设施协议 Golden Gate (GGX) 已进行了 两年的线下开发&#xff0c;于近日公开发布了最新的路线图&#xff0c;该路线图不仅显示了该生态在过去两年的发展历程&#xff0c;也披露了 2023 年即将实现的重要里程碑。 G…

IDEA上配置并运行Scala

这里使用 java17 和 Scala3.2.2作为演示 其中&#xff0c; IDEA 版本为2022.3.2 首先&#xff0c;要安装scala插件 Of course, you can also install third one above to format you scala program! 个人认为 Build system 选择 Intellij 比较方便&#xff01; 然后&#xf…

jvm中指定时区信息user.timezone

问题 同一份程序使用时间LocalDateTime类型&#xff0c;在国内和国外部署后&#xff0c;返回的时间信息前端使用出问题。 因为LocalDateTime不带时区信息&#xff0c;国内调用后&#xff0c;前端页面默认使用的浏览器所在os的时区&#xff08;我们的系统中没有给用户设置时区&…

Apache Beanutils为什么被禁止使用?

收录于热门专栏Java基础教程系列&#xff08;进阶篇&#xff09; 在实际的项目开发中&#xff0c;对象间赋值普遍存在&#xff0c;随着双十一、秒杀等电商过程愈加复杂&#xff0c;数据量也在不断攀升&#xff0c;效率问题&#xff0c;浮出水面。 问&#xff1a;如果是你来写…

09 OpenCV图形检测

1 轮廓描边 cv2.findContours() 函数是OpenCV中用于寻找轮廓的函数之一。它可以用于在二值图像中查找并检测出所有的物体轮廓&#xff0c;以及计算出这些轮廓的各种属性&#xff0c;例如面积、周长、质心等。 cv2.findContours() 函数的语法如下&#xff1a; contours, hiera…

张杰清唱高启强专属BGM简直就是天作之合,千万别点进来看

张杰清唱高启强专属BGM简直就是天作之合&#xff0c;千万别点进来看&#xff0c;#张杰#BGM#音乐 张杰演唱的《听》狂飙高启强自从出现在抖音上更是火得不可思议&#xff0c;它成为了不少年轻人喜爱的BGM&#xff0c;尤其是用它作为专属BGM的抖音视频更是受到网友的一致好评。 …

详解如何在ChatGPT内构建一个Python解释器

这篇文章主要为大家详细介绍了如何在ChatGPT内构建一个Python解释器&#xff0c;文中的示例代码讲解详细&#xff0c;具有一定的学习价值&#xff0c;需要的可以参考一下目录引用&#xff1a;Art Kulakov 《How to Build a Python Interpreter Inside ChatGPT》这个灵感来自于一…

Day892.MySql读写分离过期读问题 -MySQL实战

MySql读写分离过期读问题 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于MySql读写分离过期读问题的内容。 一主多从架构的应用场景&#xff1a;读写分离&#xff0c;以及怎么处理主备延迟导致的读写分离问题。 一主多从的结构&#xff0c;其实就是读写分离的基本…

Java SE(1)——JDK安装,基本数据类型和运算

JDK安装&#xff0c;基本数据类型和运算 一 Java语言的初体验 1.JDK下载地址 Oracle官网&#xff1a; Java Downloads | Oracle&#xff0c;根据需要&#xff0c;下载最新或历史版本。 2.运行Java文件 编写一个简单的 HelloWorld.java 文件 public class HelloWorld{publ…