java入门

1、第一个程序

public class HelloJava{
    public static void main(String[] args){
        System.out.println("你好 java");
}
}
/*
public:访问说明符, 表明是一个公共类
class:用于声明一个类
static:表明该方法是一个静态方法,允许调用main()方法,无需创建类的实例
void:表示main()没有返回值
main():是所有程序的入口地址,最先开始执行
*/

编写后在cmd输入命令,用于编译源程序。

javac HelloJava.java

当类名与文件名不一致时会出现以下错误。
微信图片_20230202174120.png

执行java程序的命令:

java HelloJava

出现中文乱码时用记事本打开文件,另存为ANSI编码,再次编译执行java文件即可

java里大写与小写是不一样的,Java 程序中的关键字全部是小写的,无需大写任何字母

在 Java 中,一行注释以双斜杠“//”标识;多行注释包含在“/”和“/”之间;文档注释包含在“/*”和“/”之间

2、javadoc(文档注释)

Javadoc 是 Sun 公司提供的一种工具,它可以从程序源代码中抽取类、方法、成员等注释,然后形成一个和源代码配套的 API 帮助文档。

用法如下:

javadoc [options] [packagenames] [sourcefiles]
/*
options 表示 Javadoc 命令的选项;
packagenames 表示包名;
sourcefiles 表示源文件名。
*/

在 cmd(命令提示符)中输入javadoc -help就可以看到 Javadoc 的用法和选项。

3、变量常量

声明变量:

String employee;    // String 类型的变量


变量赋值:

char usersex='女';    // 直接赋值



定义常量:

final dataType variableName = value

//final 是定义常量的关键字,dataType 指明常量的数据类型,variableName 是变量的名称,value 是初始值

// 静态常量
public static final double PI = 3.14;
// 声明成员常量
final int y = 10;



直接量(可以直接赋值给变量的值):
java支持8种类型的直接量。

int a = 5;
long e = 3L; //long e = 0x12L (表示18L)
char c = 'a';
boolean b = true;
float f = 5.12f;
double d = 4.12;
String name = "C语言中文网";
null;

4、数据类型转换

显示转换:

(type)variableName

5、运算符

逻辑运算符:

  • && 与 & 区别:如果 a 为 false,则不计算 b(因为不论 b 为何值,结果都为 false)
  • || 与 | 区别:如果 a 为 true,则不计算 b(因为不论 b 为何值,结果都为 true)
    (||与&&能提高效率)


三目运算符:

int x,y,z;
x = 6,y = 2;
z = x>y ? x-y : x+y;

//若x>y为真,则z=x-y否则z=x+y
//可为 x>y ? z=x-y : z=x+y;

java流程控制语句

1、if-else if-else-if

if (表达式) {
    语句块1;
} else {
    语句块2;
}
if(表达式1) {
    语句块1;
} else if(表达式2) {
    语句块2;
...
} else if(表达式n) {
    语句块n;
} else {
    语句块n+1;
}

2、switch

switch(表达式) {
    case 值1:
        语句块1;
        break;
    case 值2:
        语句块2;
        break;
    …
    case 值n:
        语句块n;
        break;
    default:
        语句块n+1;
    break;
}
//switch括号里的变量与case后的值比较,命中时执行对应语句块,否则执行default对应的语句块

判断分支多时,使用switch效率较快

3、while

while(条件表达式) {
    语句块;
}
do {
    语句块;
}while(条件表达式);

while 循环先判断,再执行。do-while 循环先执行,再判断。

4、for

public static void main(String[] args) {
    int result = 1;
    for (int number = 1; number <= 5; number++) {
        result *= number;
    }
    System.out.print("5 的阶乘结果是:" + result);   // 输出"5的阶乘结果是:120"
}

5、foreach

// 声明并初始化int数组
int[] numbers = { 43, 32, 53, 54, 75, 7, 10 };
// for-each语句
for (int item : numbers) {
    System.out.println("Count is:" + item);
}

java字符串处理

1、定义字符串

String str = "Hello Java";

String str1 = new String("Hello Java");

2、字符串与int转换

str转int:

Integer.parseInt(str)
Integer.valueOf(str).intValue()

int转str:

String s = String.valueOf(i);
String s = Integer.toString(i);
String s = "" + i;
  • valueOf() 方法将数据的内部格式转换为可读的形式。
  • parseXxx(String) 这种形式,是指把字符串转换为数值型,其中 Xxx 对应不同的数据类型
  • toString() 可以把一个引用类型转换为 String 字符串类型

3、字符串拼接

//1
String str="Welcome to"+"Beijing"

//2
String info = "三国演义、";
info = info.concat("西游记、");

4、字符串常用函数

//获取字符串长度
info.length();

//大小写转换
字符串名.toLowerCase()  
字符串名.toUpperCase()   

//去除字符串中空格
字符串名.trim()

//提取子字符串
String str = "我爱 Java 编程";
String result = str.substring(3); //Java编程
String result = str.substring(3,7);  //Java
//substring() 方法是按字符截取,而不是按字节截取。
str.split(String sign,int limit)
//sign 为指定的分割符
//limit 表示分割后生成的字符串的限制个数,如果不指定,则表示不限制
//将目标字符串中的指定字符(串)替换成新的字符(串)
字符串.replace(String oldChar, String newChar)

//正则表达匹配到的第一个字符串替换为新的字符串
字符串.replaceFirst(String regex, String replacement)

//所有匹配到正则表达的字符串都替换
字符串.replaceAll(String regex, String replacement)

5、字符串比较

//逐个地比较两个字符串的每个字符是否相同
str1.equals(str2);

//比较时不区分大小写
str1.equalsIgnoreCase(str2);

//按字典顺序比较两个字符串的大小
str.compareTo(String otherstr);
// str 位于 otherster 参数之前,比较结果为一个负整数;如果 str 位于 otherstr 之后,比较结果为一个正整数;如果两个字符串相等,则结果为 0。
  • equals() 方法比较字符串对象中的字符。而==运算符比较两个对象引用看它们是否引用相同的实例

6、空字符串和null

“”是一个长度为 0 且占内存的空字符串,在内存中分配一个空间,可以使用 Object 对象中的方法。

null 是空引用,表示一个对象的值,没有分配内存

7、字符串查找

//fromIndex为查找时的起始索引
str.indexOf(value,int fromIndex)
//例
String s = "Hello Java";
int size = s.indexOf('v');    // size的结果为8

//返回字符(串)在指定字符串中最后一次出现的索引位置(即从右查找),没有返回-1
str.lastlndexOf(value, int fromIndex)

//字符串内根据指定的索引查找字符
字符串名.charAt(索引值)
//例
String words = "today,monday,sunday";
System.out.println(words.charAt(0));    // 结果:t

8、StringBuffer 类

StringBuffer 类是可变字符串类,创建 StringBuffer 类的对象后可以随意修改字符串的内容。如果字符串的长度超过了 StringBuffer 类对象的容量,则该对象的容量会自动扩大。

定义:

// 定义一个空的字符串缓冲区,含有16个字符的容量
StringBuffer str1 = new StringBuffer();
// 定义一个含有10个字符容量的字符串缓冲区
StringBuffer str2 = new StringBuffer(10);
// 定义一个含有(16+4)的字符串缓冲区,"青春无悔"为4个字符
StringBuffer str3 = new StringBuffer("青春无悔");
/*
*输出字符串的容量大小
*capacity()方法返回字符串的容量大小
*/
System.out.println(str1.capacity());    // 输出 16
System.out.println(str2.capacity());    // 输出 10
System.out.println(str3.capacity());    // 输出 20

追加字符串:

StringBuffer 对象.append(String str)
//追加到对象字符串后面

替换字符:

//替换指定位置的字符
StringBuffer sb = new StringBuffer("hello");
sb.setCharAt(1,'E');
System.out.println(sb);    // 输出:hEllo

反转字符串:

StringBuffer sb = new StringBuffer("java");
sb.reverse();
System.out.println(sb);    // 输出:avaj

删除字符串:

//移除指定位置的字符
StringBuffer sb = new StringBuffer("She");
sb.deleteCharAt(2);
System.out.println(sb);    // 输出:Sh

//移除序列中子字符串的字符
StringBuffer sb = new StringBuffer("hello jack");
sb.delete(2,5);
System.out.println(sb);    // 输出:he jack

对于String是不可变的而StringBuffer是可变的说法有点迷惑,所以找了知乎上的解答:https://zhuanlan.zhihu.com/p/44796727

最后编辑:2023年02月15日 ©著作权归作者所有