JAVA学习笔记1(主类结构,数据类型,流程控制,字符串操作)

主类结构

Java是一个与面向对象关系很强的编程语言,java的应用程序就是由若干的类组成
每个应用程序都必须包含一个main()方法,含有main方法的类称为主类

示例:定义一个类叫Frist,里面有一个main方法,所以这个类被定义为主类

public class Frist {
    public static void main(String[] args){
        System.out.println("hello");
    }
}

main方法

main()方法是类体中的主方法。该方法从“{”号开始,至“}”号结束。public是权限修饰符,static是静态修饰符,void是返回值修饰符,Java程序中的main()方法必须声明为public static void。String[] args是一个字符串类型的数组,它是main()方法的参数。main()方法是程序开始执行的位置。

基本数据类型

整数

数据类型内存空间取值范围
byte8位-128~127
short16位-32768~32767
int32位-2147483648~2147483647
long64位-9223372036854775808~9223372036854775807

整数的定义

int x
int x,y
int x = 012,y=123

对于long类型的定义,需要在数字后面加上L或l,表示数值为长整数
例如:

long num = 2147483650L

浮点类型

类型有:

  • float
  • double

定义方法就类似于整数
默认情况下都被看作double,如果要使用float类型的就要在小数后面加是F或f

字符类型

char型

用于存储单个字符,占用16位内存空间,定义字符型变量的时候,要用单引号标注',注意区别双引号",单引号是字符,双引号是字符串:'s'表示字符,"s"表示字符串

定义例如:

char x = 'a';
a在Unicode表中排序97,所以也可以这样写
char x = 97;

布尔类型

无非是true和false

变量和常量

声明变量

int age;  //只是声明
char a='1';  //声明并赋值

申明常量

需要通过final关键字来进行限定
语法:

final 数据类型 常量名[=值]

例如:

final double PI = 3.1415926D;  //声明double型常量PI并赋值

运算符

逻辑运算符

其他的没啥好说的,说一下逻辑运算符
逻辑运算符里面有&&和||,分别表示逻辑与和逻辑或
但是还有一种短路与&短路或|
区别:
&&的判断逻辑是:第一个表达式如果是true,那就会去判断第二个是不是true,但是如果第一个表达式是false的话就不会走到第二个表达式了,也就不会执行第二个表达式(a++这样的就不会执行)

$的判断逻辑是:两个都会执行,如果都是true才返回true
或也是同理,||如果判断第一个就是true,那么就不会执行后面的表达式

三元运算符

语法

条件式?值1:值2

意思是如果前面的条件式为true,那么就返回值1,否则返回值2

数据类型转换

隐式类型转换

从低级到高级的类型转换,系统自己会自动执行
类型按精度排序:

byte<short<int<long<float<double

例如:
由于float比int高级,所以会自己进行类型转换,y的结果是50.0

int x = 50;
float y = x;

显式类型转换

语法:

(类型名)要转换的值

例如:
此时c的值为3

int a = (int)3.14

流程控制

else if

if…else就不多说
java支持else if(else和if用空格隔开)

if(){
...
}else if(){
...
}else{
}

switch

switch(表达式)
{
case 常量1:
	...
	break;
case 常量n:
	...
	break;
default:
	...
	break;
}

可以用break穿透,比如当表达式与多个值匹配的结果要有相同的结果,就可以把那几个放一起在最后加一个break,例如春季是3,4,5月,可以把case后常量为345的放一起在五月break一下

switch (5){
    case 3:
        System.out.println("春季");
    case 4:
        System.out.println("春季");
    case 5:
        System.out.println("春季");
        break;
        }

执行结果只有一个春季在这里插入图片描述

while和for

和c一样,不多说
foreach语句
for语句的简化版,把遍历对象的值赋值给x,依次循环

for(元素变量x: 遍历对象obj){
	引用了x的java语句
}

字符串

声明字符串

在java里,字符串必须在双引号里面"你好"
语法

String str;

创建字符串

java中将字符串当做对象来管理

  • String(char a[]):用一个字符数组a创建String对象。
char a[] = {'g','o','o'};
String s = new String(a);
  • String(char a[], int offset, int length)
char a[] = {'s','t','u','d','e','n','t'};
String s = new String(a,2,4);

结果是"uden"

  • 引用字符串常量
String str1,str2;
str1 = "abc"
str2 = "abc"

这个时候str1和str2具有相同的实体,就类似于c语言中的地址指向同一个值

连接字符串

+连接字符串
字符串可以和其他的基本类型进行连接,其他的基本类型会被直接转化成字符串

获取字符串长度

Sring类的length()方法

str.length();

字符串查找

String类提供两种方法:indexOf()lastindexOf()

  • indexOf(String s),返回首次出现的索引位置
str.indexOf(substr);
  • lastindex(String s),返回字符串出现的最后索引

获取指定字符

使用charAt()可以将指定索引的字符返回

str.charAt(int index);

字符串操作

获取子字符串

截取从指定的索引值开始到结束

str.substring(int begin);

完整版
老规矩:左闭右开

str.substring(int begin,int end);

去除空格

忽略前后空格

str.trim();

字符串替换

str.replace(char old,char new);

字符串判断是否相等

字符串对象不能简单的用比较运算符==,比较运算符比较的是两字符串的地址是否相同,要使用equals()函数和equalsIgnoreCase()

  • equals()如果有相同的字符和长度,用这个比较
str1.equals(str2);
  • equalsIgnoreCase()这个用于不区分大小写的

字符串分割

split()方法
根据sign分割,limit是匹配次数,如果是n则匹配n-1次,也可以理解成分成n段

str.split(String sign,int limit)

格式化字符串

str.format(String format,Object ...args)

正则表达式

  • [^456]表示4,5,6之外的任何字符
  • [a-r]:代表a-r的任意字符
  • [a-zA-Z]:表示任意的字母
  • [a-e[g-z]]:代表a~e或g~z中的任何一个字母

正则表达式可以用限定修饰符来限定元字符的出现次数,例如:A*表示A可在字符串出现0次或多次

限定修饰符意义
?0次或1次
*0次或多次
+一次或多次
{n}正好出现n次
{n,}至少出现n次
{n,m}出现n到m次
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huamanggg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值