首页 > 其他分享 >语法

语法

时间:2023-04-24 20:57:42浏览次数:37  
标签:调用 String 对象 语法 数组 实参 变量

注释

image-20230410220114758

单行注释://

多行注释:/* */

文档注释:/** */

字面量

image-20230410220334986

变量

image-20230410220833605

image-20230410221300628

关键字,标识符

image-20230410221500424

image-20230410221545104

进制

二进制 0B/0b

八进制 0

十六进制 0X/0x 开头

数据类型

image-20230411110708457

long类型后面要加 L/l

float类型后面要加 F/f

long a = 23112879182738179L;
float b = 678.08f;

image-20230411121124945

表达式的自动类型转换

image-20230413102120072

强制类型转换

数据类型 变量2 = (数据变量)变量1、数据

int a = 20;
byte b = (byte)a;

 int i = 1500;
        byte j= (byte) i; //溢出

double m = 99.5;
        int n = (int) m;//丢掉小数部分

快捷键: Alt+Enter;

  • 强转可能造成数据丢失(溢出);
  • 浮点型强转整型,直接丢掉小数部分,保留整数部分返回

运算符

+,-,*,/,%。

Tips: 做除法时乘个1.0让int变Double

“+” 可以做连接符(字符串运算时);

自增自减运算符

image-20230413111421904

赋值运算符

image-20230413111922882

扩展的赋值运算符自带强制性类型转换;

关系运算符

image-20230413112407143

逻辑运算符

image-20230413112619351

image-20230413112905128

三元运算符

image-20230413113625026

运算符优先级

image-20230413115614584

System.out.println(13>5 || 20>3 && 1>3);
// True

程序流程控制

分支Branch:If Switch结构

image-20230414100230773

条件是区间,使用if,条件是值,使用switch。

switch格式更好,性能较好,代码优雅。

image-20230414103353193

不用double是因为double计算值不精确。

image-20230414103945014

循环结构Loop

For

image-20230414104906235

优点:

减少代码重复编写,灵活控制程序执行。

批量生产数据

while

image-20230414110337562

image-20230414110446692

do-while

image-20230414111449212

应用场景:抢票,先抢再判断。

死循环 Endlessloop

image-20230414111953025

while是经典写法。

开发场景:服务器程序。

循环嵌套

跳转关键字

image-20230414114441322

开发场景:

找数据用break直接结束;

找指定数据删除用continue;

随机数

image-20230414115504525

image-20230414120917753

数组

image-20230414175003066

静态初始化数组

image-20230414180709700

其中

”【“代表数组

”I“代表int ”D“代表double

”@“在哪个地址

”776ec8df“16进制地址信息

数组变量名中存储的是数组在内存中的地址,数组是一种引用数据类型。

数组的访问:数组名【索引】

数组的长度:数组名.length

数组的最大索引=数组名.length-1 (前提是数组中存在数据)

快捷键:

  • 遍历:数组名.fori

  • 输出:数组名【索引】.sout

例:ages.fori

ages[i].sout

动态数组

image-20230414192858008

image-20230414193412485

业务场景:

动态初始化:适合开始不确定具体元素值,只知道元素个数的业务场景。(比如评委打分)

静态初始化:适合一开始就知道要存入哪些元素值的业务场景。(比如周一到周日的信息)

Java内存分配

image-20230414200242859

image-20230414200618736

image-20230414200735429

引用类型变量里面存储的 是堆的地址值

  • 如果某个数组变量存储的地址是null,那么该变量将不再指向任何数组对象

image-20230414201204104

可以输出这个变量,但是不能用这个数组变量去访问数据或者访问数组长度,会报错空指针异常:NullPointerException.

方法 Method

image-20230415180622054

image-20230415180702993

image-20230415180837169

方法运行原理

image-20230415183044276

Java的参数传递机制

  • 基本类型的参数传递是值传递

即在传输实参给方法的形参时,传输的是实参变量中储存的值的副本。

实参:方法内部定义的的变量

形参:定义方法时“(...)”中声明的参数。

形参和实参的区别和联系

\1) 形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,所以形参变量只有在函数内部有效,不能在函数外部使用。

\2) 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的数据,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参,所以应该提前用赋值、输入等办法使实参获得确定值。

\3) 实参和形参在数量上、类型上、顺序上必须严格一致,否则会发生“类型不匹配”的错误。当然,如果能够进行自动类型转换,或者进行了强制类型转换,那么实参类型也可以不同于形参类型。

\4) 函数调用中发生的数据传递是单向的,只能把实参的值传递给形参,而不能把形参的值反向地传递给实参;换句话说,一旦完成数据的传递,实参和形参就再也没有瓜葛了,所以,在函数调用过程中,形参的值发生改变并不会影响实参。

  • 引用类型的参数传递

引用类型的参数传输存储的地址值。

方法重载

一个类中,出现多个方法名称相同,但是他们的形参列表是不同的,那么这些方法就称为方法重载了。

image-20230415192548020

应用场景:为处理一类业务,提供多种解决方案,此时用方法重载。

image-20230415192840861

return关键字

return; 可以用在无返回值的方法中,作用是:立即跳出并结束当前方法的执行。

break; 跳出并结束当前所在循环的执行。

continue; 结束当前所在循环的当此继续,进入下一次执行。

面向对象

this关键字

this就是一个变量,可以用在方法中,来拿到当前对象。(哪个对象调用方法,this就指向哪个对象,也就是拿到哪个对象)。

image-20230417145815909

this应用场景:

主要用来解决:变量名称冲突问题。

即解决对象的成员变量与方法内部变量的名称一样时,导致访问冲突问题的。

this可以 指定访问当前对象的成员变量。

image-20230417150738774

即给成员方法自动加了一个 this参数。来调用对象

关于this关键字的使用:

1、this的单独使用:

(1)每实例化一个对象就会实例化一个this。

(2)this是一个对象中隐藏的引用变量,它保存了当前对象的内存地址,指向自身。

(3)this存储在堆内存当中对象的内部。

(4)this只能使用在实例方法中。谁调用这个实例方法,this就是谁。显然静态方法中不能使用this,因为静态方法的调用不需要实例化对象的参与。

(5)this大部分时候可以省略,在实例方法中,或者构造方法中,为了区分实例变量与局部变量,这种情况下,this不能省略。

2、this()的使用:

新语法,如果当前的构造方法区调用另一个本类中的构造方法时,可以使用this(参数列表),也就是当前构造方法的代码和被调用的构造方法里的代码类似时,在当前构造方法中使用this(参数列表),实现代码复用。

注意:在构造方法,this()只能出现的第一行,并且每个构造方法中最多只能有一个this()。
————————————————
版权声明:本文为CSDN博主「pipizhen_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/pipizhen_/article/details/107164439

构造器

构造器的特征:

  • 它具有与类相同的名称
  • 它不声明返回值类型(与声明为void不同)
  • 不能被static、final、synchronized、abstract、native修饰,不能有return返回语句

构造器的作用:

创建对象;给对象进行初始化

语法格式

修饰符 类名(参数列表){初始化语句;}

image-20230417154239482

封装

面向对象的三大特征:封装、继承、多态;

封装:

就是用类设计对象处理某一个事物的数据时,应该把要处理的数据,已经处理这些数据的方法,设计到一个对象中去。

封装的设计规范:

合理隐藏、合理暴露;

修饰符:public 、private

image-20230417160537672

实体JavaBean(实体类)

实体类:一种特殊形式的类。

定义:

  • 这个类中的成员变量都要私有,并且要对外提供相应的getXxx,setXxx方法
  • 类中必须要有一个公共的无参的构造器。

特点:用来保存某个事物的数据。

应用场景:

实体类只负责数据存取,而对数据的处理交给其他类来完成,以实现数据和业务数据处理相分离。

image-20230417173542328

成员变量(field)与局部变量的区别

image-20230417184143790

常用API接口

包:分门别类管理各种不同的程序

语法格式

package com.SameS.javabean;
public class Student{
    
}

在自己程序中调用其他包下的程序的注意事项

  • 如果当前程序中,要调用自己所在包下的其他程序,可以直接调用。(同一个包下的类,互相可以直接调用
  • 如果当前程序中,要调用其他包下的程序,则必须在当前程序中导包,才可以访问!导包格式:import 包名.类名;
  • 如果当前程序中,要调用Java提供的程序,也需要先导包才可以使用;但是Java.lang包下的程序是不需要我们导包的,可以直接使用。
  • 如果当前程序中,要调用多个不同包下的程序,而这些程序名正好一样,此时默认只能导入一个程序,另一个程序必须带包名访问。

String

概述:

  • 可以用来创建对象封装字符串数据,并对其进行处理。
  • 方式一:直接使用双引号 "..."。
  • 方式二:new String类,调用构造器初始化字符串对象。
String s1 = "luo";

String s2 = new String();

String s3 = new String("SameS");

char[] chars = {'a','luo','wen'};
String s4 = new String(chars);

byte[] bytes = {97,98,99};
String s5 = new String(bytes);
// s5==abc;

image-20230418082849226

String 常用方法

image-20230418090401696

String 注意事项
  • String对象的内容不可改变,被称为不可变字符串对象。
  • 只要是以 "..." 方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只储存一份;
  • 但通过new方式创建字符串对象,每new一次都会产生一个新的对象放在堆内存中。

image-20230418105740229

image-20230418110131558

image-20230418110615693

ArrayList 集合

数组定义完成并启动后,长度就固定了。集合大小可变。

ArrayList是集合中常用的一种,Array List是泛型类,可以约束存储的数据类型。

怎么使用:

创建对象,调用无参数构造器初始化对象:public ArrayList();

调用相应的增删改查的方法

开发中例如购物车

要求:

创建对象

增删改查的方法

其他特点

常用方法:

image-20230418160244562

从集合中遍历元素,并筛选出元素删除它,应该如何操作才能不出bug?

  • 方法一:每次删除一个数据后,索引-1;
  • 方法二:从集合后面比哪里然后删除,可以避免漏掉元素。

arrays类

java.util.Arrays

Arrays类中的方法都是Static 修饰的静态方法,在使用的时候可以直接使用类名进行调用,而“不用”使用对象来调用。

功能:

  • 给数组赋值:fill
  • 对数组排序:sort
  • 比较数组:equals
  • 查找数组元素:binarySearch 二分法搜索
  • 打印数组:toString

标签:调用,String,对象,语法,数组,实参,变量
From: https://www.cnblogs.com/SameS/p/17350870.html

相关文章

  • go 语言基本语法
    一、go语言初探1.基本数据类型整型(int)、浮点型(float)、布尔型(bool)、字符串(string)2.复合数据类型数组、切片、结构体、函数、map、通道(channel)、接口等3.安装Beegoinstallgithub.com/beego/bee/v2@master4.命令:goversion#查看go的安装版本go......
  • 2 Golang语法基础
    目录2Golang语法基础1变量命名规范2语法规则:变量的定义与使用①完整定义②类型推导:自动推导出变量,是什么类型③简略声明:2Golang语法基础1变量命名规范Go语言中的函数名、变量名、常量名、类型名和包名等所有的命名,都遵循一个简单的命名规则:①一个名字必须以一个字......
  • sql语法错误[1093] You can't specify target table 'score' for update in FROM clau
    不能在同一张表中将查询非结果集作为更新条件执行将需要的结果集外层套一层自查询如updateaseta.num=a.num+1wherea.namein(selecta.agefromawherexx=xxx);报错[1093]Youcan'tspecifytargettable'score'forupdateinFROMclauseupdateaseta......
  • docker搭建mongodb及基本语法的使用
    一、介绍:概述:主使用docker安装mongodb的方法记录,mongo基本语法记录的整理,大神请绕道!优势:1.MongoDB提供高性能的数据持久性。对嵌入式数据模型的支持减少了数据库系统上的IO活动2.如动态模式、灵活的文档模型,适合json数据存储,适合海量数据存储使用场景:1.数据量大,读写操作频......
  • 2、Pipeline语法及使用自定义工具的Maven工程
    Pipeline语法声明式pipeline的结构pipeline的定义有一个明确的、必须遵循的结构,它由一些directive(指令)和section(配置段)组成,每一个section又可包含其它的section、directive和step(执行步骤),以及一些condition(执行条件)的定义;◼Section:用于将那些在某个时间点需要一同运行的条目(i......
  • 开心档之C++ 基本语法
    C++基本语法C++程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。对象- 对象具有状态和行为。例如:一只狗的状态-颜色、名称、品种,行为-摇动、叫唤、吃。对象是类的实例。类- 类可以定义为描述对......
  • Java基础语法(一):Java程序的结构
    前言Java是一种流行的面向对象编程语言,可以用于开发各种应用程序,从桌面应用程序到企业级Web应用程序和移动应用程序。编写Java程序时,良好的程序结构是至关重要的,因为它可以帮助程序员更好地组织代码并使其易于维护和扩展。本文将介绍Java程序的结构,包括程序组成部分、代码结构和组......
  • 这个英文语法校正插件很赞!可以校正邮件,也可以校正论文
    英语写作必不可少,常由于写得快、缺少检查、语法不甚熟悉,总是会出一些问题。总是求人帮助修改也不是办法,老被导师挑出错误也不像话。这里推荐一款软件Grammarly(https://app.grammarly.com/),可在线使用、做为独立软件安装到本地、做为Office的插件、火狐的插件。用于校正文档时是这......
  • kotlin语法
    kotlin语法zhuanlan.zhihu.com残枫cps目录收起语法基础kotling语言和JVM虚拟机声明变量和内置数据类型只读变量类型推断编译时常量kotlin反编译后字节码kotlin生成字节码文件之后,交给jvm运行,和java一样工具步骤:tools->kotlin->showtotlinbytecode引用类型range......
  • C语法
    原文地址zhuanlan.zhihu.comC语法残枫cps​目录收起void指针NULL指针指向指针的指针常量常量指针与指向常量的指针可变参数va_list是类型函数:函数名=函数地址指针函数函数指针函数指针作为参数函数指针作为返回值全局变量extern关键字作用域链接属性void指针NULL......