JAVA入门学习笔记.docx

上传人:b****7 文档编号:26350051 上传时间:2023-06-18 格式:DOCX 页数:12 大小:189.53KB
下载 相关 举报
JAVA入门学习笔记.docx_第1页
第1页 / 共12页
JAVA入门学习笔记.docx_第2页
第2页 / 共12页
JAVA入门学习笔记.docx_第3页
第3页 / 共12页
JAVA入门学习笔记.docx_第4页
第4页 / 共12页
JAVA入门学习笔记.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

JAVA入门学习笔记.docx

《JAVA入门学习笔记.docx》由会员分享,可在线阅读,更多相关《JAVA入门学习笔记.docx(12页珍藏版)》请在冰豆网上搜索。

JAVA入门学习笔记.docx

JAVA入门学习笔记

1.基本语法规则

1)每一个Java文件中可以有多个类,但只能有一个用public修饰的类,且文件名与该类名相同。

其他类只能使用默认修饰符default(不用标明)。

2)构造方法没有返回值,也没有void

3)

4)类的分类

a)  抽象类:

使用abstract修饰符修饰的类称为抽象类。

没有具体的对象。

是所有子类公共属性的集合。

b)最终类:

 如果一个类被final修饰符所修饰,说明这个类不可能有子类。

  

2.This关键字

1)类对象创建后,系统分配给每个对象的指针。

不同对象有不同的This。

2)this关键字只能使用在非静态方法中。

3)This用法:

a)引用该方法所属类的对象。

b)在函数参数与类成员变量同名时用于区分。

(如构造函数)

c)一个类可能有多个构造方法,在一个构造方法中调用其他构造方法。

3.内部类

1)定义在另一个类里面的类叫内部类。

2)内部类的对象,能够访问外部类的所有成员。

3)创建内部类的对象(必须先创建外部类对象)

外部类名.内部类名对象名=外部类对象名.new内部类名();

4)内部类与向上转型(就是将内部类转换为基类型)

5)

4.文本文件的读写

1)PrintWriter

PrintWriteroutput=newPrintWriter(“a.txt”);

output.print(“abc”);

output.close;

2)Scanner

Scannerinput=newScanner(“a.txt”);

Stringstring=input.nextline();

a)Scanner类中next()和nextline()方法的区别?

next()方法从第一个非分隔符开始至下一个分隔符结束,返回的是不含空格的字符串。

(分隔符包括空格和换行)

nextline()方法只对换行符敏感,返回的是可以包含空格的字符串。

b)Scanner类用于从键盘读入!

详见“13”。

5.二进制文件的读写

1)java中所有IO类都要抛出IOException。

(throwsIOException)

2)InputStream类是二进制输入类的根类,OutputStream类是二进制输出类的根类。

3)FileInputStream类和FileOutputStream类

a)构造方法(创建类的对象)

FileInputStream(File:

file)

FileInputStream(String:

filename)

(若为不存在文件创建FileInputStream对象,会抛出异常)

FileOutputStream(File:

file);

FileOutputStream(String:

filename);

FileOutputStream(File:

file,boolean:

append);true,追加内容

FileOutputStream(String:

filename,boolean:

append);true,追加内容

b)常用方法

write(“”);无返回值

read();每次读取一个字节,并作为返回值返回;当返回值为-1时,文件到达末尾。

read(a);其中a为一个数组;每次读取数组长度的字节,并返回;当返回-1时,文件到达末尾。

4)FilterInputStream类和FilterOutputStream类

(出于某种目的,过滤字节的数据流)

(read()方法只能读取字节,若要读取数值或字符串,就要使用过滤器类包装输入数据流,但是字符还不行)

a)DataInputStream类和DataOutputStream类

(FilterInputStream类和FilterOutputStream类是过滤数据的基类,一般使用DataInputStream类和DataOutputStream类)

实现了字节与字符串,数值之间的双向转换。

分别实现了DataInput接口和DataOutput接口。

DataInputStream类(DataInput接口)的方法:

readBoolean();readByte();

readChar();readFloat();readDouble();readInt();readLong();readShort();

readLine();readUTF();

DataOutputStream类(DataOutput接口)的方法:

writeBoolean();writeByte();

writeBytes();writeChar();writechars();writeFloat();writeDouble();writeInt();

writeLong();writeShort();writeUTF();

同一内容的读写,应使用对应的read()和write()函数。

DataInputStream类的读取方法,在读到文件末尾时会抛出异常,所以要使用

try{}catch(){}块。

5)BufferedInputStream类和BufferedOutputStream类

a)BufferedInputStream类和BufferedOutputStream类为存储字节在流中添加了一个缓冲区,提高处理效率。

b)flush()方法,将缓冲区内容读入或写出。

c)DataInputStreamf=newDataInputStream(newBufferedInputStream(newFileInputStream(“a.txt”)))

关联文件->输入/输出流->缓冲区流->数据流。

6)ObjectInoutStream类和ObjectOutputStream类

实现类对象的读写。

6.获取键盘值的两种方法

1)BufferedReader类和InputStreamReader类(字符串)

BufferedReaderbr=newBufferedReader(newInputStreamReader(system.in));

Stringstr=null;

str=br.readline();

2)Scanner类(字符串,数值等)

Scannersc=newScanner(System.in);

stringname=sc.nextLine();

intage=sc.nextInt();

floatsalary=sc.nextFloat();

7.BufferedReader类和BufferedWriter类

1)使用InputStream类,按字节读取。

每读取一个字节,调用一次IO,但调用IO时很费时的。

使用BufferedReader类,一次读取大量数据,提高效率。

2)FileReaderf=newFileReader(“c:

\\a.txt”);

BufferedReaderread=newBufferedReader(f);

3).readline();读取回车符前所有字节

.write();

.newline();写入时,光标另起一行

8.StringBuffer类

1)StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。

2)StringBuffer和String属于不同的类型,不能赋值,也不能直接进行强制类型转换

3)类的方法

a)append()——追加函数

StringBuffersb=newStringBuffer(“abc”);

sb.append(“123”);

则sb内容为abc123

b)deleteCharAt(inta),delete(intstart,intend)——删除固定位置的字符

StringBuffersb=newStringBuffer(“abc”);

str.deleteCharAt

(1);

则sb内容为ac

c)insert(intoffset;string/char)——插入

StringBuffersb=newStringBuffer(“abc”);

str.insert(1,hhh);

则sb为a111bc

d)reserve()——反转字符串

StringBuffersb=newStringBuffer(“abc”);

str.reserve();

则sb为cba

e)setCharAt(inta,charb)——修改字符

StringBuffersb=newStringBuffer(“abc”);

str.setCharAt(1,B);

则sb为aBc

f)trimToSize()—将StringBuffer类对象空间缩小大字符串大小,节约内存

没有返回值:

sb.trimToSize();

g)tostring()——将StringBuffer对象转换为String;

4)

9.substring()

1)通过字符串生成子串

2)stringstr=“12345”;

intj=1;

str.substring(j+1);

则字串为“345”

10.HTTP

1)HttpSeveletRequest和HttpSeveletrequest

a)公共接口类HttpServletRequest继承自ServletRequest.客户端浏览器发出的请求被封装成为一个HttpServletRequest对象。

所有的信息包括请求的地址,请求的参数,提交的数据,上传的文件客户端的ip甚至客户端操作系统都包含在其内。

HttpServletResponse继承了ServletResponse接口,并提供了与Http协议有关的方法,这些方法的主要功能是设置HTTP状态码和管理Cookie。

b)

c)HttpServletRequest的getSession()方法

d)法

2)response和request的setCharacterEncoding()区别

a)request的setCharacterEncoding是用于确保参数信息以汉字编码方式来提取的。

一般都是表单提交到servlet那里然后用request来解决中文乱码。

b)response.setCharacterEncoding()可以不用。

response.setContentType("text/html");

response.setCharacterEncoding("XXX");这两行代码和response.setContentType("text/html;charset=XXX");等价。

11.Java中使用线程的两种方法

(继承Thread类;复写Runnable接口)

1)任何一个Java程序都必须有一个主线程。

主线程的线程执行体不是由run()方法来确定的,而是由main()方法来确定的,由main()方法开启线程。

而子线程需要通过start()方法开启线程。

2)Thread中的方法

a)currentThread():

该方法是Thread类的静态方法,该方法总是返回当前正在执行的线程对象的引用。

b)getName():

该方法是Thread类的实例方法,该方法返回调用该方法的线程的名字。

c)setName(Stringstr):

设置线程名字,对象名只是一个引用不是名字。

3)继承Thread类方式的优缺点:

a)优点:

编写简单,如果需要访问当前线程,无需使用Thread.currentThread()方法,直接使用this,即可获得当前线程。

b)缺点:

因为线程类已经继承了Thread类,所以不能再继承其他的父类。

4)*******以上为继承Thread方法,下面为复写Runnable接口********

5)实现Runnable接口的类必须使用Thread类的实例才能创建线程。

6)复写Runnable接口方法优缺点

a)优点:

线程类只是实现了Runable接口,还可以继承其他的类。

在这种方式下,可以多个线程共享同一个目标(target)对象,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU代码和数据分开,形成清晰的模型,较好地体现了面向对象的思想。

b)缺点:

编程稍微复杂,如果需要访问当前线程,必须使用Thread.currentThread()方法。

7)

8)注意

a)一个线程只能被启动一次,否则会抛出异常。

b)Java不保证线程的执行顺序。

t1.start();

t2.start();

也不保证在t1结束运行后,才启动线程t2.

12.Intenger与Int的区别

1)Int为基本数据类型,Intenger是一个类。

2)inta=2;

intengerb=newintenger

(1);

a仅仅是一个能进行加减乘除的数值,而b为一个对象,可以有很多操作,且这些操作只能通过类方法实现。

3)int默认值为0,intenger默认值为null。

4)

13.ArrayList

1)ArrayList为动态数组,可自动改变容量。

当容量满后,2倍增加。

存储速度较慢。

2)ArrayList三种初始化方式:

a)ArrayListal=newArrayList();默认容量为0;

b)ArrayListal=newArrayList(3);设置初始容量为3;

c)ArrayListal=newArrayList(a);a为集合和数组;

3)ArrayList处理方法

a)添加数据:

Add(objectvalue)——("a”),(‘b’),(3);

Insert(intindex,objectvalue);在确定位置插入;

InsertRange(intindex,ICollectionc);

b)删除数据:

Remove(objectvalue);

Remove(intindex);

RemoveRange(intindex,intcount);

c)查找数据:

contains(objectvalue)——存在返回true;

IndexOf(objectvalue)——返回位置,没有返回-1;

IndexOf(objectvalue,intstartindex)——从startindex开始检索,返回第一个位置或-1;

IndexOf(objectvalue,intstartindex,intcount)——从startindex开始,检索count个元素,返回第一个位置或-1;

LastIndexOf()——用法与IndexOf()相同,也有三种。

返回最后出现位置。

4)判断ArrayList是否为空:

if(al.isempty()){}

if(al.size()==0){}

5)ArrayList的遍历

a)for(int1=0;i

b)

6)

14.foreach语句

1)foreach语句格式

for(part1:

part2){part3}

part1定义了一个局部变量,这个局部变量的类型与part2中的对象元素的类型是一致的.

part2中是一个数组对象,或者是带有泛性的集合.

part3是循环体.

15.String类的getBytes()方法

1)str.getBytes()将字符串转换成字节数组。

2)byte[]gb=str.getBytes(“GBK”);照GBK编码方式将字符串装换成字节数组

如果省略了编码方式,就采用操作系统的默认编码方式。

3)newString(byte[],decode);将字节数组按制定编码方式转为字符串。

4)Stringstr=newString(byte[],decode);

16.类集Collection

1)一个类集是一组对象;

2)

17.Json结构(JavaScript)

1)Json数据结构:

名值对;对象用{};数组用[];名值对用:

和,;

2)Json数据值可以是:

数值,字符串,逻辑值,数组,对象,null。

3)Json数据结构:

对象和数组;

4)Json可兑换;

5)Json数据的访问和更改:

点号表示法(.);

6)Json结构具体形式:

a)对象是一个无序的名值对集合;

b){“姓名”:

“大汉”,“年龄”:

“24”}

7)数组是值的有序集合:

18.补充

1)@Override

简单理解就是这个句话下边的方法是继承父类的方法,对其覆盖。

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

当前位置:首页 > 成人教育 > 专升本

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

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