标签:int eve 面向 赋值 单位 开平 同文件 fir this
下面我们来了解Java的基础。
public class FirstSample{
public static void main(String[]args){
System.out.println("we will not use ‘Hello, World!!!‘");
}
}
这个程序虽然简单,但是所有的Java应用程序,都是这种格式,我们还是花一些时间来了解它
public
称为访问修饰符,这些修饰符用于控制程序的其他部分对这段代码的访问级别其中还有:
- private
- protected
class
后面紧跟着的是类名,在上述的程序中FirstSample
称为类名。Java中,对于类名的命名,必须是以字母为开头,后面可以跟字母和数字的任意组合,长度基本上没有限制,但是不可以使用Java的保留字
.java
作为扩展名在Java中,有两种常见的文件,分别是以.java
和.class
为扩展名的文件。其中.java
是Java源文件,.class
是字节码文件(也就是经过编译后的文件)
我们都常说,Java是跨平台的,为什么能够跨平台?因为有jvm,因为jvm只能识别.class
文件,所以编写的.java
文件必须经过编译,称为.class
文件,才能够被jvm运行
Java中的基本数据类型是四类八种
哪四类?
八种是:
类型 | 占字节数 |
---|---|
byte | 1字节 |
short | 2字节 |
int | 4字节 |
long | 8字节 |
float | 4字节 |
double | 8字节 |
char | --- |
boolean | --- |
boolean
只能有两个值,false
,true
,不可以有其他的值,用于判定逻辑条件。整型值和布尔值之间不能进行相互转换
请注意!!!!
Integer
和int
不是同一个东西,Integer
是int
的包装类,int
是java
的一种基本数据类型。因为Integer
是一个类,所以必须经过实例化之后,才能使用。而int
则不需要。其中,Integer
的默认值是null
,int
的默认值是 0
。
其中还有:
以上的都是包装类
而其中,包装类常用的方法则有,以 Integer 为例
返回值类型 | 方法名 | 解释 |
---|---|---|
byte | byteValue() | 把Integer对象转换为byte类型 |
double | doubleValue() | 转为double类型 |
float | floatValue() | 转为float类型 |
int | intValue() | 转为int类型 |
long | longValue() | 转为long类型 |
static int | parseInt(String str) | 把str从字符串类型转成int类型 |
String | toString() | 把转成字符串类型 |
static Integer | valueOf(String s) | 将字符串转成Integer类型 |
包装类主要是两种方法,
在Java中,final关键字可以用来修饰类、方法和变量,变量包括成员变量和局部变量
当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。
final修饰的方法表示此方法已经是“最后的、最终的”含义,亦即此方法不能被重写换句话说,也就是这种方法提供的功能已经满足当前要求,不需要进行扩展,并且也不允许任何从此类继承的类来重写这种方法,但是继承仍然可以继承这个方法,也就是说可以直接使用。
final修饰的变量表示此变量是“最后的、最终的”含义。一旦定义了final变量并在首次为其显示初始化后,final修饰的变量值不可被改变。
对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。
在Java中,有一个类叫Math
,这里包含着各种各样的数学函数,在编写不同类别的程序的时候,可能需要的函数也有不同
方法 | 作用 |
---|---|
Math.sqrt(int a) | 对一个数进行开平方 |
Math.abs(int a) | 对一个数进行绝对值运算 |
Math.pow(doube a,doule b) | 对a进行b次幂的运算 |
Math.PI | 数学中pi的值,也就是3.1415926525..... |
还有很多,不一一列举
Java中也有类似于c++的位运算
其中
进行右移运算
Java中的String类包含了50多个的方法,下面列出一些常用的方法
方法 | 作用 |
---|---|
char charAt(int index) | 返回index位置的代码单元 |
int compareTo(String other) | 按照字典序,如果字符串位于other之前,返回一个负数,如果位于other之后,返回一个正数,如果两个相等,那么返回 0 |
boolean empty() | 判断是否为空,如果为空,那么返回true,否则返回false |
int indexOf(String str) | |
int indexOf(String str, index formIndex) | |
int indexOf(int cp) | |
int indexOf(int cp,int formIndex) | 返回与字符串str或码点cp匹配的第一个字符串的开始位置,从索引0或fromIndex开始匹配。如果在原字符串中国不存在str,则返回 -1 |
int length() | 返回字符串代码单元的个数 |
String substring(int beginIndex) | |
String substring(int beginIndex, int endIndex) | 返回一个新字符串。这个字符串包含原始字符串中从beginIndex到字符串末尾或endIndex-1的所有代码单元 |
String toLowerCase() | 返回一个字符串,将原始字符串中的大写字母改成小写字母 |
String toUpperCase() | 返回一个字符串,将原始字符串中的小写字母改成大写字母 |
了解String
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence,
Constable, ConstantDesc {
/**
* The value is used for character storage.
*
* @implNote This field is trusted by the VM, and is a subject to
* constant folding if String instance is constant. Overwriting this
* field after construction will cause problems.
*
* Additionally, it is marked with {@link Stable} to trust the contents
* of the array. No other facility in JDK provides this functionality (yet).
* {@link Stable} is safe here, because value is never null.
*/
@Stable
private final byte[] value;
/**
* The identifier of the encoding used to encode the bytes in
* {@code value}. The supported values in this implementation are
*
* LATIN1
* UTF16
*
* @implNote This field is trusted by the VM, and is a subject to
* constant folding if String instance is constant. Overwriting this
* field after construction will cause problems.
*/
private final byte coder;
/** Cache the hash code for the string */
private int hash; // Default to 0
/**
* Cache if the hash has been calculated as actually being zero, enabling
* us to avoid recalculating this.
*/
private boolean hashIsZero; // Default to false;
/** use serialVersionUID from JDK 1.0.2 for interoperability */
@java.io.Serial
private static final long serialVersionUID = -6849794470754667710L;
.......
|
以上是String中的一些代码,由上面可见,String是一个final类,也就意味着不能够对其进行继承,并且它的成员方法都默认为final方法。
重要:String对象一旦被创建就是固定不变的了,对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象
由于String字符串的不可变性我们可以十分肯定常量池
中一定不存在两个相同的字符串
引入常量池:
Java中的常量池有两种
静态常量池
运行时常量池
静态常量池
即*.class文件中的常量池,class文件中的常量池不仅仅包含字符串(数字)字面量,还包含类、方法的信息,占用class文件绝大部分空间。这种常量池主要用于存放两大类常量:字面量(Literal)和符号引用量(Symbolic References),字面量相当于Java语言层面常量的概念,如文本字符串,声明为final的常量值等,符号引用则属于编译原理方面的概念,包含:1、类和接口的全限定名,2、字段名称和描述符,3、方法名称和描述符
是jvm虚拟机在完成类装载操作后,将class文件中的常量池载入到内存中,并保存在方法区中,我们常说的常量池,就是指方法区中的运行时常量池。类加载后,常量池中的数据会在运行时常量池中存放!
读入
java.util.Scanner
Scanner在java.util包中
Scanner in=new Scanner(System.in)
输出
System.out.print(something)
System.out.print("What is your name?")
使用Scanner类中的各种方法,可以从控制台中进行输入,例如
Scaner in=new Scanner(System.in);
String name=in.nextLine();//读取下一行,也就是你应该输入的那一行,然后赋值给name
int pos=in.nextInt();//读取下一个数字,转化为int赋值给pos
double pos=int nextDouble();//读取下个一个数字,转化为double赋值给pos
System.in
是什么?是一个输入流。流不展开
Java中允许使用包将类组织在一个集合中。借助包可以更方便组织自己的代码,并将自己的代码与别人提供的代码库分开管理
使用包的主要原因是确保类名的唯一性。如果两个程序员不约而同地建立了两个类名一样的类,只要将这些类放置在不同的保重,就不会产生冲突。
事实上,为了保证报名的绝对唯一性,只要用一个因特网域名的逆序的形式作为报名,然后对与不同的工程使用不同的子包。
类的导入,以导入Scanner
类为例的两种形式
import java.util.Scanner;
import java.util.*;
一种是单独导入一个类,另一种是导入该包下的所有的类(如果该包中还有其他的包,不到人这个包中的类,只导入当前包的所有类)
包的作用:
如果在当前包下的Java文件,最开始的时候必须使用package语句定义当前包。
如果转载,请转明出处,谢谢
标签:int eve 面向 赋值 单位 开平 同文件 fir this
原文地址:https://www.cnblogs.com/Yunrui-blogs/p/12782807.html