EE5805-java-Lecture1 Introduction to java

news2024/12/26 0:07:39

暑期选择了java减轻下学期的课量,在本科期间就已经学过Java了,现在写一些笔记作为复习。

The Goal

• To understand the Java runtime environment.
• To know Java’s terminologies, advantages and characteristics.
• To recognize the form of identifiers.
• To learn Java primitive data types and object types.
• To become familiar with Java programming style and naming conventions.
• To create, compile, and run a simple Java program.
• To understand method overloading.
• To determine the scope of local variables.
• To understand Array of Java.
• To recognize the multidimensional form of arrays.
• To learn common String operations in Java.
• To use the Character class to process a single character.
• To use the StringBuffer class to process flexible strings.
• To learn how to pass strings to the main method from the command line.

Why Java

  • Simple and Object-oriented
  • Distributed
  • Interpreted,portable and architecture-neutral
  • Robust and secure
  • Dynamic

Java is OO Language

OO encourages the use of object to model or represent program
At here,class(definition of objects),is a blueprint for building objects or a construct which you can specify the features.
Data field and method defined in a class.
请添加图片描述

Modifier and method

  • A modifier is used to specify the properties of the data,
    methods, and classes.
  • Some common modifiers are public, protected, private, final,
    static and abstract.

Identifiers

letters, digits,_ and $
1:cannot be start with digits
2:cannot be reserved word
3:cannot be true/false/or null

The process

1:Declaration(int x;)
2:Assignment(x=1;)
3:combine 1 and 2 ->Initialization(int x=1;)

Constants

We can use final to decorate the variable
  对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。

Comments

  1. // single line
  2. /* multiple
    lines
    */
  3. /** multiple
    line
    */

Naming Conventions

  1. variable and method names:aaaBbb
  2. class names:AaaBbb
  3. constants: AB(all Upper letter)

Passing Arguments(传参)

here parameters:形式参数
arguments:实际参数
There are two ways to pass an grgument
1:passed by value(all primitive data belongs this type)
2:passed by reference(objects are passed by reference)

Overloading methods

Here,you should know firstly:
Method signature=method name+parameter lists

So,the Overloading method means:Two methods can be declared with different signatures, hence using same name but different parameter lists is allowed(test)

Scope of Variables

  1. Data field(of class):inside a class and outside a method
  2. local variable(of method):inside a method

Arrays

  1. This is a data structure
  2. Java Array is an object which is a reference type, no matter what type of elements it contains
  3. An array’s size is fixed once created
    -> arrayRefVar.length
  4. Default value on creation
    -> 0 for the numeric primitive data types,
    -> ‘\u0000’ for char types, and
    -> false for boolean types.
  5. Array’s elements accessed through index
    -> array indices are 0-based
  6. Cannot same with int creation and assignment
    请添加图片描述
    should:
    请添加图片描述
    For the two-dimensional arrays:
    请添加图片描述
    array.length:->row
    array[0].length:->col

The string class

请添加图片描述

  1. construct a string:
  • String message =“welcome to Java”
  • String message=new String(“welcom……”)
  • String s=new String();
    (String object is immutable )
  1. Finding length:
  • message.length()(returns 7)
  1. Concatenating Strings:
  • concat()/or is same
    请添加图片描述
  1. Extracting Substrings
  • substring(start, end)returns a string from start to (end-1)
  1. Comparing Strings
  • Using equals()/**==**operator to compare two strings
  • 请添加图片描述
  1. Converting Strings
  • The contents of a string cannot be changed once the string is created.But you can convert a string to a new string using the following methods
  • 请添加图片描述
  1. Searching a character or a substring
  • To search forward, use indexOf();
  • To search backward, use lastIndexOf();
  • 请添加图片描述
  1. Converting Other Types to Strings
  • use valueOf()

The character class

  1. To construct a Character object: Character charObject=new Character(‘b’);
  2. To compare two characters:
    请添加图片描述

The StringBuffer Class(Thread Safe)

  1. The StringBuffer class is an alternative to the String class. In general, a StringBuffer can be used wherever a string is used (drop-in replacement)
  2. StringBuffer is mutable, hence more flexible than String
public class StringBufferDemo {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer("Hello");
        sb.append(" World");
        sb.insert(5, ",");
        sb.delete(5, 6);
        System.out.println(sb.toString());
    }
}
InputHello, World

Appending Contents to StringBuffer

请添加图片描述

Passing Parameters to Main Method

  1. Method1:请添加图片描述
    类A的main方法:
    首先,定义了一个字符串数组strings,其中包含三个城市名称:“New York”、“Boston"和"Atlanta”。
    然后,调用类B的main方法,并将strings数组作为参数传递给它。

类B的main方法:
接受一个字符串数组args作为参数。
使用一个for循环遍历args数组,并将每个元素打印到控制台。
执行流程

当你运行类A的main方法时,执行流程如下:
类A的main方法被调用。
创建一个字符串数组strings,内容为{“New York”, “Boston”, “Atlanta”}。
调用类B的main方法,并将strings数组传递给它。
类B的main方法开始执行,接收传递过来的strings数组作为参数args。
类B的main方法遍历args数组,并逐个打印数组中的元素。
输出结果

运行类A的main方法时,控制台将输出:
New York
Boston
Atlanta

总结
类A的main方法创建并初始化了一个字符串数组,然后将其传递给类B的main方法。
类B的main方法接收这个数组并打印其内容。
这种调用方式展示了如何在Java中从一个类的main方法调用另一个类的main方法,并传递参数

Static and non-static Object context

在 Java 中,staticnon-static 是两个关键字,用于定义类成员变量和方法。它们之间的主要区别如下:

  1. 内存分配:static 成员变量和方法是在类加载时分配内存,而 non-static 成员变量和方法是在实例化对象时分配内存。
  2. 访问方式:static 成员变量和方法可以通过类名直接访问,而 non-static 成员变量和方法只能通过实例化对象访问。
  3. 初始化:static 成员变量和方法只会被初始化一次,而 non-static 成员变量和方法每次实例化对象时都会被初始化。
  4. 作用域:static 成员变量和方法的作用域是整个类,而 non-static 成员变量和方法的作用域是实例化对象。
  5. 用途:static 成员变量和方法通常用于表示类级别的属性和方法,如常量、工具方法等,而 non-static 成员变量和方法通常用于表示对象级别的属性和方法,如实例变量、实例方法等。

下面是一个示例代码,演示了 staticnon-static 成员变量和方法的用法:

public class MyClass {
    // static 成员变量
    static int staticVar = 0;
    // non-static 成员变量
    int nonStaticVar = 0;

    // static 方法
    static void staticMethod() {
        System.out.println("This is a static method.");
    }

    // non-static 方法
    void nonStaticMethod() {
        System.out.println("This is a non-static method.");
    }

    public static void main(String[] args) {
        // 直接访问 static 成员变量和方法
        System.out.println(MyClass.staticVar);
        MyClass.staticMethod();

        // 实例化对象后访问 non-static 成员变量和方法
        MyClass obj = new MyClass();
        System.out.println(obj.nonStaticVar);
        obj.nonStaticMethod();
    }
}

输出结果为:

0
This is a static method.
0
This is a non-static method.

总之,staticnon-static 是 Java 中两个重要的关键字,它们分别用于定义类级别和对象级别的属性和方法。根据具体的需求,我们可以选择使用它们中的一个或多个来实现我们的程序逻辑。

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

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

相关文章

vi编辑器的常用方法

一、背景描述 在我们连接操作Linux服务器的时候,需要对其配置文件等内容进行一些增删改的操作,一般情况下我们直接使用Linux系统自带vi编辑器进行相应的操作,熟悉vi的常用功能对于我们编辑一些较大的文件效率能够有所提升,使用起来…

【设计模式】行为型-策略模式

策略模式,如春风吹过,随心所欲,变幻无穷,每一丝风都是一种选择。 文章目录 一、订单处理二、策略模式三、策略模式的核心组成四、运用策略模式五、策略模式的应用场景六、小结推荐阅读 一、订单处理 场景假设:有一个…

Python网络爬虫实战6—下一页,模拟用户点击,切换窗口

【前期提要】感兴趣的可以看看往期文章哈~ Python网络爬虫5-实战网页爬取 Python网络爬虫4-实战爬取pdf Pyhon网络爬虫3-模拟用户点击 Python网络爬虫实战2-下载url下的pdf Python网络爬虫基础1 1.需求背景 针对长虹美菱电器说明书网页形式,编写爬虫代码&#xff…

数通云网架构师涨薪班毕业都有哪些工作企业和岗位?

数通云网架构师涨薪班课程学完后,学员具备全行业全场景交付数通项目的能力,胜任企业网,广域网,数据中心网络等各种网络项目的交付能力,技术能力一项能够匹配年薪达30w-40w以上网络工程师岗位。 与誉天进行人才培养&…

Swagger2及常用校验注释说明

Api(value "后台用户管理") RestController RequestMapping("bossuser") public class BossUserController {ApiOperation(value "测试接口")PostMapping("test")public String testUser(Valid RequestBody TestUser user) {LOG.inf…

大数据------额外软件、插件及技术------Linux(完整知识点汇总)

Linxu 不同领域的主流操作系统 桌面操作系统 WindowsMAac OSLinux 服务器端操作系统 UNIX(付费)LinuxWindows Server(付费) 移动设备操作系统 Android(基于Linux开源)IOS(不开源) 嵌…

电脑桌面便签怎么添加,桌面备忘录软件哪个简单又好用?

在日常的工作或学习中,我们经常需要记事、备忘。这时,一个简单实用的桌面便签工具就显得尤为重要了。那么,电脑桌面便签怎么添加?又有哪些桌面备忘录软件既简单又好用呢? 首先,关于如何添加电脑桌面便签。…

vue如何引入图标

方法1&#xff1a;iconify/vue pnpm add iconify/vue -D 网址&#xff1a;https://icon-sets.iconify.design/ 使用哪个需要安装 如下截图,安装指令&#xff1a; > npm install iconify/icons-gg在使用的页面引入 import { Icon } from “iconify/vue”; <template>…

CODESYS+EtherCAT+X86/ARM硬件平台:高性能运动控制的标配,支持定制

支持的硬件标准与定制平台&#xff1a; X86:INTEL ARM: RK3568/RK3588/TI/NXP/树莓派/全志T3/A40i等 前段时间分享了施耐德基于CODEYS开发的首款支持EtherCAT总线的运动控制器&#xff0c;CODESYSEtherCATX86硬件平台&#xff1a;高性能运动控制的标配。 CODESYS第一次接触还…

【银河麒麟】unzip程序卡住,处理机制详解,附代码

1.服务器环境以及配置 【机型】 处理器&#xff1a; HUAWEI,Kunpeng 920 内存&#xff1a; 400G 【内核版本】 4.19.90-23.18.v2101.ky10.aarch64 【OS镜像版本】 银河麒麟高级服务器操作系统V10-SP1-0711-arm 【第三方软件】 docker 2.问题现象描述 一台k8s服务器…

Camera2内存泄漏修复

最近公司想要使用Camera2来替换线上的旧版相机&#xff0c;功能调研过程中发现Camera2在很多机器上都会有奇怪的内存泄漏&#xff0c;比较明显的时候可能有100M&#xff0c;比较常见的是表现为内存释放不及时&#xff08;上涨一段时间后会有一次下降&#xff09;&#xff0c;这…

Web渗透:XXE-XML外部实体漏洞

XML External Entity (XXE) 漏洞是一种注入攻击&#xff0c;利用不安全的XML解析器来执行各种恶意操作&#xff0c;如读取本地文件、执行远程代码、发起拒绝服务攻击等&#xff1b;此漏洞的根本原因在于XML标准允许在文档中定义外部实体&#xff0c;并在解析时进行解析和替换。…

快储存,分布式文件系统,对象储存

Ceph块存储 镜像快照 快照可以保存某一时间点时的状态数据快照是映像在特定时间点的只读逻辑副本希望回到以前的一个状态&#xff0c;可以恢复快照使用镜像、快照综合示例 rbd create img1 --size 10G 创建镜像rbd ls 查看镜像 rbd info img1 #查看…

使用原子子表创建可重用的子组件

原子子表是一个图形对象&#xff0c;可帮助您在Stateflow图表中创建独立的子部件。原子子表允许&#xff1a; 对具有多个状态或层次结构的图表进行微小更改后&#xff0c;模拟速度更快。 在多个图表和模型中重复使用相同的状态或子表。 易于团队开发&#xff0c;适用于在同一图…

大语言模型在医疗领域的进展、应用和挑战_医疗大语言模型算法csdn

### 概述 本文综述了医学领域大型语言模型&#xff08;LLM&#xff09;的进展、应用和面临的挑战。大型语言模型如ChatGPT在理解和生成人类语言方面显示出了显著的能力&#xff0c;引起了广泛关注。在医学领域&#xff0c;研究人员正致力于利用LLM支持各种医疗任务&#xff0c…

文华财经盘立方博易大师主图指标公式大全源码均线

文华财经盘立方博易大师主图指标公式大全源码均线&#xff1a; N:3; EMA25:EMA(C,25),COLORRED,LINETHICK2; EMA70:EMA(C,70),COLORGREEN,LINETHICK2; EMA450:EMA(C,450),COLORYELLOW,LINETHICK2; CONDA1:EMA25>EMA70&&C>HV(H,6)&&C>EMA450&…

C语言 | Leetcode C语言题解之第179题最大数

题目&#xff1a; 题解&#xff1a; long cmp(int *x, int *y) {unsigned long sx 10, sy 10;while (sx < *x) {sx * 10;}while (sy < *y) {sy * 10;}return sx * (*y) (*x) - sy * (*x) - (*y); }char *largestNumber(int *nums, int numsSize) {qsort(nums, numsSi…

Linux C 程序 【01】最小程序

1.开发背景 基于 RK3568 平台的基础上&#xff0c;编译一个在系统上运行的最小程序。 2.开发需求 由于 RK3568 作为宿主机&#xff0c;在上面编译程序比较慢&#xff0c;所以还是采用在 Ubuntu 下交叉编译后再拷贝到宿主机上运行。 设计实验&#xff1a; 1&#xff09;搭建 M…

数据分析必备:一步步教你如何用matplotlib做数据可视化(14)

1、Matplotlib 图像 Matplotlib包中的图像模块提供加载&#xff0c;重新缩放和显示图像所需的功能。Pillow库支持加载图像数据。Matplotlib仅支持PNG图像。如果本机读取失败&#xff0c;下面显示的命令将回退到Pillow。 此示例中使用的图像是PNG文件&#xff0c;但请记住数据的…

AFLNet入门教学——测试RTSP协议实现Live555(Ubuntu)

1、简介 本文旨在使用AFLNet对RTSP协议实现Live555进行模糊测试。实验环境为&#xff1a;Ubuntu22.04.4AFLNet安装参考&#xff1a;AFLNet入门教学——安装&#xff08;Ubuntu22.04.4&#xff09;-CSDN博客 2、安装Live555 本次实验采取的是live555在2018年8月28日上传的版本…