Java基础学习笔记


前言

c语言: 数据类型、控制流程、函数、指针、数组
c++: 面向对象、群体类、泛型
类是对象的抽象,对象是类的实例
java: Swing、集合类、流类库、多线程、网络通信、数据库、AWT……
后继课程: 数据库、数据结构、初级软件实作、JSP、高级软件实作……

Java必知

Object类是Java中所有类的直接或间接基类

Object的方法:

在这里插入图片描述

unicode

汉字范围:[\u4e00]–[\u9fe5]

'\u4e00'

[\u4e00-\u9fe5]{2,4}

一、基础知识

数据类型


Java的基本数据类型及其封装类

数据类型转换

隐式类型转换

按精度从低到高转换

byte–>short–>int–>long–>float–>double

char–>int–>long–>float–>double

注:byte与char之间不能转换

应用:可以用派生类对象表示基类对象

显式类型转换

把高精度的变量赋值给低精度的变量时,必须使用显示类型转换运算

(类型名)要转换的值

除boolean类型外,其他基本类型都能以显式类型转换的方法实现转换

注:把一个整数赋值给byte、short、int、long型变量时,不可以超出变量的取值范围,否则必须进行强制类型转换

byte b=(byte)129;

注:隐式转换有风险,当转换与实际一致时才不容易出错

//装箱
Object sender = new JButton();
//拆箱
((JButton)sender).setText("点击成功");

流程控制

条件语句

1.if条件语句

2.if…else条件语句

3.else if条件语句

4.switch多分支语句

循环语句

1.while循环语句

2.do…while循环语句

3.for循环语句

4.foreach循环语句
for(元素类型 x : 遍历对象obj){
	引用了x的java语句
}

理解:循环遍历对象obj,将每次循环到的元素赋值给x

例如:使用foreach语句遍历整型数组

int	arr[]={5,13,96};
for(int x:arr){
	syso(x);
}
//输出结果:
//5
//13
//96

5.break语句

6.continue语句

数组

一维数组

创建一维数组

1.先声明,再用new进行内存分配

数组元素类型 数组名字[];
数组元素类型[] 数组名字;

数组名字 = new 数组元素的类型[数组元素的个数];

注:使用new关键字分配内存时,整型数组中各个元素的初始值都为0.

int arr[];
arr=new int[5];

2.声明同时分配内存

数组元素的类型 数组名[] = new 数组元素的类型[数组元素个数];
int month[]=new int [12];
//注意看month后面的[]里面不写元素个数!

初始化一维数组

int arr[]=new int[]{1,2,3,4,5};
int arr2[]={1,2,2,6}

二维数组

创建二维数组

1.先声明,再使用new分配内存

数组元素的类型 数组名字[][];
数组元素的类型[][] 数组名字;
int a[][];
a=new int[2][4];

或者

a=new int[2][];
a[0]=new int[2];
a[1]=new int[3];

2.声明的同时为数组分配内存

int a=new int[2][4];

初始化二维数组

数组元素类型 数组名[][]={value1,value1...valuen};
int myarr[][]={{1,2},{3,4},{5,6}};
常用属性
length
int[][] intArr1 = {{1,2,3,4},{2,3,4,5}};
intArr1.length;
intArr1[0].length;

intArr1.length的结果为8?错!!!intArr1.length获取到的是该二维数组的第一维长度,也就是行数
intArr1[0].length就很好理解了,获取到的是该二维数组的第二维长度,也就是列数

数组的基本操作

遍历数组

用foreach遍历二维数组

int arr[][]={{4,3},{1,2}};
int i=0;
for(int x[]:arr){
	i++;
	int j=0;
	for(int e:x){
		j++;
		if(i==arr.length&&j==x.length){
			syso(e);
		}else{
			syso(e+" ");
				}
	}
}
Arrays类
1.填充替换数组元素

filll(int [] a,int value)
:将指定的value值分配给int型数组的每个元素

fill(int [] a, int fromIndex, int toIndex, int value)
:将指定的value值分配给int数组指定范围中的每一个元素[fromIndex,toIndex)

2.对数组进行排序
Arrays.sort(object)
3.复制数组

copyOf(arr,int newlength)

arr:要进行复制的数组

newlength:指复制后的新数组的长度。当新数组的长度大于原数组时,java会根据原数组的类型来填充值(eg:整型数组用0填充,字符类型数组用null填充)

int arr[]=new int[]{13,24,12};
int newarr[]=Arrays.copyOf(arr,5);
for(int x:newarr){
	syso(x);
}
//输出结果:
//13
//24
//12
//0
//0

copyOfRange(arr, int fromIndex, int toIndex)

4.查询数组

binarySearch(Object[] a,int fromIndex, int toIndex, Object key)
:[fromIndex,toIndex)

字符串

声明字符串

String str;

注:声明的字符串变量必须经过初始化才能使用

创建字符串

1.String(char a[])

char a[]={'h','e','l','l','o'};
String s=new String(a);

2.String(char a[],int offset,int length)

3.String(char[] value)

字符串基本信息

字符串长度
str.length();
字符串查找

1.indexOf(String s)

:返回参数字符串s在指定字符串中首次出现的索引位置,如果找不到,则返回-1

2.lastIndexOf(String str)

:返回指定字符串最后一次出现的索引位置

获取指定索引位置的字符

charAt(int index)

字符串操作

连接字符串:"+"

连接多个字符串

连接其他数据类型

获取子字符串

1.substring(int beginIndex)
:返回从指定的索引位置开始截取到字符串结尾的子串

2.substring(int beginIndex, int endIndex)
:返回在指定范围截取的子串

去除空格

trim():清除前导空格和尾部空格

应用:获取用户名、账号、密码

字符串替换

replace(CharSequence target,CharSequence replacement)

String str="Hello world";
str.replace("ll", "kk");
syso(str);
//输出结果:"Hello world"

//怎么没有替换呢?

//原因:str引用字符串常量"Hello world"
str2="Hello world";
//str2与str引用的是同一个地址的字符常量!
//因而使用replace不能直接在原先的字符串上作出修改
//不只是replace,java中很多函数都如此

//正确用法:
//replace会返回一个操作过后的新字符串
//因此需要一个字符串来承接新的结果

str=str.replace("ll", "kk");
syso(str);
//输出结果:"Hekko world"
判断字符串的开始与结尾

1.startsWith(String prefix)

:判断当前字符串对象是否以指定的内容开始

2.endsWith(String suffix)

判断字符串是否相等
String str1="Hello world";
String str2="Hello world";

syso(str1==str2);
//结果是true?
//错!!!

//在java中不能再用"="来比较两个字符串的内容是否相等
//原因:在java中"="比较的是两个字符串的地址是否相同
//显然,除非是同一个字符串对象,否则返回值都为false

1.equals()

str1.equals(str2);

2.equalsIgnoreCase()

:比较时忽略大小写

比较字符串
str.compareTo(String otherstr)
大小写转换

1.大写转小写

str.toLowerCase()

2.小写转大写

str.toUpperCase()
字符串分割

1.split(String sign)
:根据给定的分割符对字符串进行分割

str.split(String sign)

2.split(String sign, int limit)
:根据给定的分割符对字符串进行有限次的分割

字符串与字符数组

toCharArray()
:将字符串转化为字符数组

String str="Hello!";
char cc[]=str.toCharArray();
for(char c:cc)
	syso(c);
//输出结果:
//H
//e
//l
//l
//o
//!

正则表达式

正则表达式

常用正则表达式

字符串生成器StringBuilder

使用StringBuilder的原因:

普通的字符串是引用字符串常量,当需要大量重复修改字符串时开销很大

1.append(content)

2.insert(int offset,arg)

StringBuilder bf=new StringBuilder("hello");
bf.insert(5,"world");
syso(bf.toString());

3.delete(int start ,int end)

StringBuilder bf=new StringBuilder("StringBuilder");
bf.insert(5,10);
syso(bf.toString());

二、类与对象


三、


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值