文章目录
- 始于足下!
- 一、第一个java程序,了解java
- 二、变量
- 三、常量
- 四、数据类型
- String
- 1、计算字符串长度
- 2、equals()和==之间的比较
- 3、字符串连接
- StringBuilder
- 五、运算符
- 算数运算符
- 位运算符
- 逻辑运算符
- 关系运算符
- 符号运算优先级
- 六、小练习
- 计算两数的和
- 七、java关键字和语句
- 八、java中的方法
始于足下!
一、第一个java程序,了解java
//定义一个learn1的类,这个类必须和j源代码文件名相同。
public class learn1 {
//static 静态的 属于类的方法 即访问它不需要实例对象就能访问, void 即这个方法没有返回值
public static void main(String[] args){ //main方法是程序的入口
System.out.println("HelloWorld!");
}
}
由于我是使用编译器写的,写完以后在对应目录下回生成一个.class
文件,该文件表示代码已经经过编译,运行程序方式如下:
二、变量
java中变量需要先声明
int a = 1;
public class VarTest{
public static void main (String[] args){
int a = 5;
System.out.println(a);
}
}
三、常量
常量的值是不能被修改的。Java 中的 final
关键字可以用于声明属性(常量),方法和类。当 final 修饰属性时,代表该属性一旦被分配内存空间就必须初始化,它的含义是“这是无法改变的”或者“终态的”。在变量前面添加关键字 final 即可声明一个常量。在 Java 编码规范中,要求常量名必须大写。
final double PI = 3.141592652;
final double PI;
PI = 3.141592652;
public class FinalVar{
public static void main(String[] args){
final String THE_STRING = "shiyanlou";
System.out.println(THE_STRING);
}
}
四、数据类型
java中一共八种数据类型
整数byte
、short
、int
、long
四种基本数据类型表示整数,需要注意的是 long 类型,使用 long 修饰的变量需要在数值后面加上 L 或者 l,比如 long num = 1L;,一般使用大写 L,为了避免小写 l 与数值 1 混淆。
浮点数float
和 double
类型表示浮点数,即可以表示小数部分。需要注意的是 float 类型的数值后面需要加上 F 或者 f,否则会被当成 double 类型处理。double 类型的数值可以加上 D 或 d,也可以不加。
char 类型char
类型用于表示单个字符。需要将字符用单引号括起来char a = ‘a’,char 可以和整数互相转换,如果字符 a 也可以写成char a = 97。也可以用十六进制表示char a = ‘\u0061’。
boolean 类型
boolean
类型(布尔类型)用于表示真值 true或者假值 false,Java 中布尔值不能和整数类型或者其它类型互相转换
String
字符串是常量,它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。
String s0 = "abc";
String s1 = new String("abd");
1、计算字符串长度
int len0 = s0.length();
int len1 = s1.length();
2、equals()和==之间的比较
字符串比较equals()
方法,该方法的作用是判断两个字符串对象的内容是否相同。如果相同则返回 true,否则返回 false。
如果想忽略大小写关系,则可以用
equalsIgnoreCase()
方法
==
方法:该方法比较的是连个对象在内存中存储的地址是否一样、
String s1 = "abc";
String s2 = new String("abc");
boolean b = (s1 == s2);
变量 b 的值是 false,因为 s1 对象对应的地址是 “abc” 的地址,而 s2 使用 new 关键字申请新的内存,所以内存地址和 s1 的 “abc” 的地址不一样,所以获得的值是 false。
3、字符串连接
字符串连接有两种方法
1、使用+
2、使用concat()
方法
String s0 = "HelloWorld";
String s1 = "!!!";
String s2 = s0 + s1;
String s3 = s0.concat(s1);
System.out.println(s2);
System.out.println(s3);
public class StringBuilderTest {
public static void main(String[] args){
StringBuilder s1 = new StringBuilder();
s1.append("java");
StringBuilder s2 = new StringBuilder(5);
StringBuilder s3 = new StringBuilder("shiyanlou");
System.out.println("s1:" + s1.toString() + "\tcap:" + s1.capacity());
System.out.println("s2:" + s2.toString() + "\tcap:" + s2.capacity());
System.out.println("s3:" + s3.toString() + "\tcap:" + s3.capacity());
}
}
StringBuilder
String 是无法被修改的,对 String 的修改,其实是新建了一个 String 对象。如果需要修改字符串的内容,可以使用 StringBuilder
。它相当于一个存储字符的容器。
StringBuilder的初始化方法
# 构造一个不包含任何字符且初始容量为 16 的 StringBuilder
StringBuilder a = new StringBuilder();
# 构造一个不包含任何字符且容量为 cap 的 StringBuilder
StringBuilder b = new StringBuilder(int cap);
# 构造一个 StringBuilder,内容初始化为 str
StringBuilder c = new StringBuilder(String str);
五、运算符
算数运算符
位运算符
Java 定义了位运算符,应用于整数类型 (int),长整型 (long),短整型 (short),字符型 (char),和字节型 (byte) 等类型。位运算时先转换为二进制,再按位运算。
表格中的例子中,变量 a 的值为 60(二进制:00111100),变量 b 的值为 13(二进制:00001101):
public class BitOperation {
public static void main(String args[]) {
int a = 60;
int b = 13;
System.out.println("a & b = " + (a & b));
System.out.println("a | b = " + (a | b));
System.out.println("a ^ b = " + (a ^ b));
System.out.println("~a = " + (~a));
System.out.println("a << 2 = " + (a << 2));
System.out.println("a >> 2 = " + (a >> 2));
System.out.println("a >>> 2 = " + (a >>> 2));
}
}
逻辑运算符
逻辑运算符是通过运算符将操作数或等式进行逻辑判断的语句。
表格中的例子中,假设布尔变量 a 为真(true),变量 b 为假(false):
public class LogicOperation {
public static void main(String args[]) {
boolean a = true;
boolean b = false;
System.out.println("a && b = " + (a && b));
System.out.println("a || b = " + (a || b));
System.out.println("!a = " + (!a));
System.out.println("a ^ b = " + (a ^ b));
}
}
关系运算符
关系运算符生成的是一个 boolean(布尔)结果,它们计算的是操作数的值之间的关系。如果关系是真实的,结果为 true(真),否则,结果为 false(假)。
表格中的例子中,假设变量 a 为 3,变量 b 为 5:
public class RelationalOperation {
public static void main(String args[]) {
int a = 3;
int b = 5;
System.out.println("a == b = " + (a == b));
System.out.println("a != b = " + (a != b));
System.out.println("a > b = " + (a > b));
System.out.println("a < b = " + (a < b));
System.out.println("a >= b = " + (a >= b));
System.out.println("a <= b = " + (a <= b));
System.out.println("a > b ? a : b = " + (a > b ? a : b));
}
}
符号运算优先级
六、小练习
计算两数的和
//Scanner 类可以获取控制台输入的内容,但是需要先导入
import java.util.Scanner;
//获取输入的值
public class Sum{
public static void main(String[] args){
int x, y, sum;
System.out.println("输入:");
Scanner myObj = new Scanner(System.in);
x = myObj.nextInt();
y = myObj.nextInt();
sum = x + y;
System.out.println("输出");
System.out.println(sum);
七、java关键字和语句
Java 的关键字对 Java 的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名。
Java 关键字有如下表所列,目前共有 50 个 Java 关键字,其中,“const” 和 “goto” 这两个关键字在 Java 语言中并没有具体含义。
八、java中的方法
public void functionName(Object arg) {
System.out.println("Hello World.");
}
在上面的语法说明中:
1访问修饰符:代表方法允许被访问的权限范围, 可以是 public
、protected
、private
或者省略(default
) ,其中 public 表示该方法可以被其他任何代码调用。
2返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void
(代表无类型);如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用return
语句返回值。
3方法名:是方法的名字,必须使用合法的标识符。
4参数列表:是传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
5方法体:方法体包含具体的语句,定义该方法的功能。
根据方法是否带参、是否带返回值,可将方法分为四类:
- 无参无返回值方法
- 无参带返回值方法
- 带参无返回值方法
- 带参带返回值方法
public class MethodDemo{
public static void main(String[] args){
method();
}
//这里要加上 static 关键字 因为静态方法只能调用静态方法
public static void method(){
System.out.println("方法被调用");
}
}