java课堂笔记.docx

上传人:b****7 文档编号:23649711 上传时间:2023-05-19 格式:DOCX 页数:42 大小:31.61KB
下载 相关 举报
java课堂笔记.docx_第1页
第1页 / 共42页
java课堂笔记.docx_第2页
第2页 / 共42页
java课堂笔记.docx_第3页
第3页 / 共42页
java课堂笔记.docx_第4页
第4页 / 共42页
java课堂笔记.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

java课堂笔记.docx

《java课堂笔记.docx》由会员分享,可在线阅读,更多相关《java课堂笔记.docx(42页珍藏版)》请在冰豆网上搜索。

java课堂笔记.docx

java课堂笔记

Md创建一个文件夹

Cd\退回到根目录

Rd删除空文件夹

Echo数据>>文件名创建一个文件并指定写入的数据

Type文件名查看指定文件的内容

Del文件名删除指定的文件删除文件夹中所有的文件

*.txt

Tab内容补全

Cls清除

Java虚拟机不是跨平台的

Java虚拟机的作用:

解释class文件并通知系统要执行那些操作

Jrejava运行环境jre=java虚拟机+核心类库(辅助java虚拟机运行的文件)

Jdkjava开发工作集=jre+java开发工具

安装jdk不能有中文路径和空格

PathJDK/bin控制台在任何路径下找到java的开发工具

Set查看所有环境变量信息

ClasspathJDK/jre/lib设置class文件所在路径

Java_HOMEJDK/bin避免频繁修改path环境变量信息

Java:

启动java虚拟机解释并执行对应的class文件

Javac启动java编译器对指定的java源文件进行编译。

软件:

数据+指令+文档

常量类别整数,小数,布尔,布尔常亮,字符串常量

八进制转换为十进制

3*8(0)+3*8

(1)=3+16=19

45/8/855(八进制)

0b10二进制

010八进制

0x10十六进制

八种基本数据类型:

byte8(bit)位,short16int32long64

小数float32小数7位double64双精度15位

Boolean1字节安全性boolean声明基本变量是4字节声明数组类型是一个字节

字符类型

Char2字节(16位)

A码值97

字符串string是引用数据类型不属于基本数据类型

小转大自动

大转小

Byteb=(byte)i

如果是负数最高位是1,正数的二进制最高位0

前自增:

先自增后使用

后自增:

先使用后自增

|一边位true结果为true

^结果不一致,结果为true,一致为false;

&&左边为false不会运算右边

||左边为true不会运算右边的布尔值

FileinFile=newFile(“f:

”)

FileInputStreaminput=newFileInputStream(inFile)

IntContent=0;//变量用于读取到的数据

While((content=input.read())!

=-1)//如果没有读到文件末尾,那么继续读取数据

交换两个数据

A=a+b;

B=a-b;

A=a-b;

定义中间变量

Inttemp=a;

A=b;

B=temp;

A=a^b;

B=a^b;

a=a^b;

3<<1左移6操作数乘2的n次方

右移除2的n次方

1-100求和

Intnum=1;

Intsum=0;

While(num<=100){

Sum=sum+num;

Num++;

}

随机数

Randomrandom=newRandom();

Intnum=random.nextInt(11);

7的倍数

While(num%7=0){

sum

}

while

Booleanflag=true;

While(flag)

Flag=false;

直角三角形

J<=i控制列数j<=ij++

9*9乘法表

I=1;i<=9;i++

Syso(i*j)

I+“*”+j+“=”+i*j

\n换行

\r回车

\r\n

Break退出当前循环

Continue只能用于循环语句,跳过本次循环体内容

Continueouter;

函数

Publicstaticintadd(inta,intb){

Returna+b;

}

If(a>b){

Max=a;

}else{

Max=b;

}

Returnmax;

PublicstaticStringgetGrade(intscore)//返回值类型String

换行

Syso()

如果一个函数没有返回值返回给调用者,那么返回值类型必须是使用void表示

定义一个数组

Int[]arr=newint[4]

取出数组的最大值

PublicstaticintgetMax(int[]arr){

For(inti=0;

If(arr[i]>max){

Max=arr[i]

}

}

}

选择排序

把最大值放在最后一个位置

For(inti=0;

If(arr[I]>arr[i+1]){\

Inttemp=arr[i];

Arr[i]>arr[i+1]\

Arr[i+1]=temp

}

}

二分查找

Intmax=arr.length-1;

Intmin=0;

Intmid=(max+min)/2

While(true){

If(target>arr[mid]){

Min=mid+1;

}elseif{

Max=mid-1

}else{

Returnmid;

}

}

没有找到的情况

If(max

Return-1;

}

Stringinfo=Arrays.toString(arr)

成员变量

Stringnull

Int0

局部变量没有默认的初始值,给方法内部使用自己而已。

匿名对象

NewStudent().study()

F.repair(newCar())//对象为了满足需求而创建的

提供公共的方法设置属性值

PublicvoidubutCakculator(intn1,intn2,charo){

Num1=n1;

Num2=n2;

If(o=’+’||o==’-’||o==’*’||o==’/’)

}

Calculatorc=newCalculator();

C.calculate(1,2,’+’)

构造函数没有返回值类型的

构造函数必须和类名一致

Jvm主动调用对应的构造函数

构造函数的作用是初始化一个对象。

普通函数是用于描述一类事物的公共行为

局部代码块大括号位于方法之内,作用缩短局部变量的生命周期,节省内存

静态代码块static,共享的数据

方法内部默认是访问局部变量的数据,通过this关键字访问成员变量

This(110,name)

S1.country=“

构造代码块

{

Count++

}

静态函数用类名访问

非静态函数可以访问静态与非静态

静态函数不能出现this与super

静态成员变量优于对象

静态成员变量随着类的加载而加载消失而消失

单例模式:

私有化构造函数

保证在内存只有一个对象

ClassSingle{

PrivateSingle(){}

}

提供一个公共的方法获取本类的对象

PublicSinglegetInstance(){

Returns;

}‘

Singles1=Single.Instance();’

饿汉

PrivatestaticSingles=newJingle()浪费内存

懒汉不创建对象privateSingles;

PublicstaticSingle2getInstance(){

If(s==null){

S=newSingle2()

}

Returns;

}子类会调用父类无参构造方法

重写前提父类功能无法满足子类的需求

方法重写的前提必须要有继承关系

父类的权限不能大于子类的权限

Exception(最坏)

Run(小坏)子类异常小鱼父类异常类型

Instanceof判断一个对象是否属于指定的类别

DinstanceofDog/Animal

Final关键字修饰一个引用变量时,该变量不能重新指向新的对象。

Final函数不能被重写

一个函数没有方法体,函数必须为abstract、

非抽象类继承抽象类。

那么必须把抽象类的所有抽象方法全部实现。

PrivateabstractvoidgetArea();

Static与abstractfinalstatic不能共同修饰一个方法

接口是一个特殊的类,

接口中的成员变量都是常量publicstaticfinal

接口中的方法都是抽象方法,默认的修饰符publicabstract

接口不能创建对象。

接口提高复用性

非抽象类实现一个接口必须把接口中的所有方法都实现。

一个类可以实现多个接口

多态必须存在存在继承或者实现冠词

面向对象

封装,继承,多态

多态:

分类引用变量指向子类的对象

Animala=newMouse();//动物对象给个老鼠

多态的情况下,子父类存在的同名成员变量,访问的是父类的成员变量。

子父类存在非静态的成员函数,访问的是子类的成员函数。

同名静态成员函数方法访问的是父类的

多态情况下不能访问子类特有的成员。

只有同名非静态函数才访问子类的

编译看左边,检查引用变量类是否具备指定的成员。

A所属的类Animal是否有指定的dig

多态用于形参,接受更多的类型对象。

任意图形对象,打印面积

Publicstaticvoidprint(MyShapes){//MyShapes=newCircle(4,0)

S.getArea();

S.getLength();

}

Publicstaticvoidmain(String[]args){

Circlec=newCircle(4,0);

Print(c);

}

强制类型转换

Mousem=(Mouse)a;

Publicstaticvoidprint(Animala){

If(ainstanceofFish){

Fishf=(Fish)a;

F.bubble();

}

}

ClassUserDaoimplementDao{

}

Daod=newUserDao()接口的引用类型变量指向了接口实现类的对象

在外部方法中创建了内部类的对象,然后调用内部方法。

Publicvoidinstance(){

Innerinner=newInner()

Inner.print()

}

Outerouter=newOuter();

Outer.instance();

内部类可以直接访问外部类的所有成员,同名内部类默认访问内部类的成员变量

外部类.this.成员变量名访问外部类的成员

私有内部类只能在外部类提供一个方法创建内部类的对象进行访问不能在其他类创建对象

静态的成员数据不需要对象存在才能访问

静态内部类其他累创建的格式

外部类.内部类变量名=new外部类.内部类();

局部内部类访问局部变量变量必须是final修饰的

Inner的生命周期比局部内部类长

匿名内部类与Animal是继承关系

A=NewAnimal(){

Publicvoidrun(){

}

Publicvoidbite(){

}

}.bite().sleep();

A.Sleep()

PublicabstractAnimalrun();

Publicstaticvoidtest(Daod){

}//形参类型是一个接口引用

Throwable

Error错误

Exception运行时异常:

调用者可以处理可以不处理,方法可以声明可以不声明

编译时异常:

方法上必须要声明,调用者也必须要处理

toString()当前异常对象的包名和类名

返回的是创建throwable传入的字符串

printStackTrace()打印异常的栈信息

捕获异常必须从小到大进行

Catch(Exceptione){

Response.sendR阿direct、(“//.html”)

}

抛出异常,调用者必须处理异常

Throw该方法会马上停止执行

Service把web需要的数据处理成web需要的格式

通知调用者用抛通知用户用捕获异常

自定义异常

Publicstaticvoideat(intmoney)throwsNoMoneyException{

}

Finally块代码再任何情况下都会执行,除了jvm退出

Char[]buf=newchar[1024]//字符数组

Intlength=0;

Length=fileReader.read(buf)

Protect不能访问不同包

Default子父类是false不同包下的

Private只能是同一个类

模板代码

AbstractclassMyRuntime{

PublicvoidgetTime(){

}

Publicabstractvoidcode();

}

ClassDemoextendMyRuntime{

Publicstaticvoidmain(String[]args){

Demod=newDemo();

D.getTime()

}

}

清除重复的元素,break

Intcount=0;

For(inti=0;i

For(intj=i+1;j

If(arr[i]==arr[j]){

Count++

Break;

}

}

}

Booleanflag=false:

当前元素是否为重复元素,默认不是重复元素

If(newArr[J]==temp){//是重复元素

Flag=true;

Break;

}

//不是重复元素,把该元素存储到新数组中

If(flag==false){

NewArr[index]=temp;

}

ClassUser{

StringuserName;

Stringpassword;

}

User[]users=newUser[10]

Stringpassword=scanner.next()

Object是所有类的终极父类

hashCode()哈希码对象的内存地址

String(byte[]bytes,intoffset,intlength)bytes要解码的数组offset数组中那个索引值开始解码

Str.charAt(3)

String[]arr=str.split(“-”)

Arrays.toString(arr)

Str.subString

(2)

Str.subString(2,4)

Char[]arr=str.toCharArray()转换为字符数组

Intindex=Path.lastIndexOf(“\\”)

Path.substring(index+1)

翻转reverse(str)

子串在父串中出现的次数

Str.indexOf(target,fromIndex))!

=-1

字符串是常量,在值创建之后不改变

stringBuffer存储字符的容器底层依赖一个字符数组,

Sb.append(“java”)

Sb.insert(2,”小明”)

Ab.replace(2,4,“陈小狗”)

Sb.ensurreCapacity(20)

toString()字符缓冲类的内容转换成字符串返回。

StringBuffer与StringBuilder两个类都是字符串缓冲类

两个类的方法都是一致的

StringBuffer是线程安全的。

StringBuilder是线程不安全的

Arraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)

Src原数组srcPos原数组的起始位置dest目标数组destPos目标数组的起始位置

Length复制数组元素的数量

014160

Runtimeruntime=Runtime.getRuntime()

Runtime.exec(“C:

\\Windows\\notepad.exe”)

Calendarcalendar=Calendar.getInstance();

Claendar.get(Calendar.YEAR)

Calendar.get(Calendar.MONTH)+1

DATE

HOUR_OF_DAY

MINUTE

SECOND

Datedate=newDate()

SimpleDateFormatdateFormat=newSimpleDateFormat(“yyyy年MM月dd日HH:

mm:

ss”);

Time=DateFormat.format(date)

Abs(-3)

Ceil(-3.14)

Math.floor(-3.14)

Random.nextInt(10)+11-10

nextInt(11)1-10

StringBulider存储字符的容器

For(inti=0;i<4;i++){

Intindex=randome.nectInt(arr.length)

Sb.append(arr[index])

}

Syso(sb)

进程负责控件的划分

线程负责代码的执行,就是一个执行路径

ClassDemoextendsThread{

Publicvoidrun(){

Super.run()//自定义的任务代码就写在run方法中,自定义线程负责run方法中的代码

}

}

Main所有代码都是由主线程执行的

Demod=newDemo()

D.run();

D.start()

Run方法不能直接调用相当于调用一个普通方法并没有开启线程

New线程创建不具有执行功能

Start进入可运行状态,获得cpu执行权,具备cpu的等待资格

Sleep进入临时阻塞状态,线程一旦超过了指定的睡眠时间就重写进入可运行状态。

调用wait进入临时阻塞状态,需要其他线程唤醒该线程才可以重写进入可运行状态。

Yield暂停当前正在执行的线程对象,并执行其他线程

StaticIntnum=50;非静态的成员变量数据是在每一个对象中都会维护一个数据的

ClassSaleTicketextendsThread{

Staticintnum=50;

PublicSaleTicket(Stringname){

Super(name);

}

}

Publicvoidrun(){

While(true){

If(num>0){

Syso(Thread.currentThread().getName()+””num)

Num--;

Thread.sleep(100)

}

}

}

线程同步块

Sunchronized(o){

需要被同步的代码;

}

StaticObjecto=newObject();

PublicclassDemoimplementsRunnable{

}

Demod=newDemo()

Threadthread=newThread(d,””)

Thread.start()

SaleTicketsaleTicket=newSaleTicket()

Treadthread=newThread(saleTicked.”窗口”)

线程通信生产者与消费者

Productp=newProduct()

Producerpriducer=newProducer(p)

Producer.start()

Wait方法与notify方法必须要同步代码块或者同步函数才能使用

Wait方法与notify方法必须由锁对象调用。

Booleanflag=false;

Synchronized(p){

If(p.flag==false){//消费者p.flag==true

If(){

P.flag=true;

I++;

P.notify()

}

Interrupt无法停止一个线程

}else{

P.wait()

}

}

一个进程中只剩下守护线程,守护线程也会死亡。

D.setDaemon(true)

Join方法加入必须让步给新加入的线程新完成任

Sons=newSon()

S.start()

S.join()

List有序可重复

Set无序不可重复

Collectionc=newArrayList()

C.add()

C.clear()

C.remove(o)

C.RetainAll(c2)保留c集合于c2集合的交集元素

C,contains(“”)

Object[]arr=c.toArray()//把集合中的元素全部存储到Object的数组中返回

Array.length

Arr[i]

List有序可重复set无序不可重复

Object[]arr=c.toArray()把集合元素存储到一个object数组中

Iteratorit=c.iterator()

hasNext()是否有下个元素,如果有元素可以便利,返回true

Next()获取元素

Collectionusers=newArrayList()

Users.add(“账号”)

While(true){

Intid=scanner.nextInt()

}

Iteratorit=users.iterator();

Outer:

While(it.hasNext){

Useruser=(User)it.next()

If(user.id==id)

Break;

}else{

Breakouter;

}

Useruser=newUser(id,null)

If(users.contains(user))

User.setPassword(password)

Users.addd(user)

BooleanisLogin=false;

List.addAll(2,list2)list2的元素添加到list集合指定索引位置上

List.get(i)

List.indexOf(“本山”)

List.subList(fromIndex,toIndex)//指定开始于结束的索引值截取集合中的元素

hasPrevious()判断是否存在上一个元素

Previous获取上一个元素

Next()先取出当前指针指向的元素,然后指针向移动一个单位

It.next()

Add(Ee)把当前元素插画入道当前指针指向的位置

Set(Ee)替换迭代器最后一次返回的元素

正序it.hasNext()it.next()

逆序

It.hasPrevious()it.previous()

ArrayList底层是维护了一个Obj

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1