Java复习知识点(概念与代码)

Java复习知识点(概念与代码),第1张

Java复习知识点(概念与代码) 前情提要

知识点可能比较杂乱,觉得有用就蛮看吧。。

第一章: API,JDK,JRE,JVM,IDE这些英文缩写的含义

APIJava应用程序接口,包含了为开发JAVA程序而预定义的类和接口。

JDK用于开发和运行Java程序的软件

JREJava开发工具包,运行Java程序的程序

JVMJava虚拟机

IDE快速开发程序的集成开发环境

如何编写,编译,运行一个JAVA程序?

Java源程序保存为.java文件,编译为.class文件。.class文件由Java虚拟机(JVM)执行。

在执行程序之前,必须创建程序并进行编译。

Java编译器将Java源文件翻译成Java字节码文件。

如果没有错误,编译器将生成一个扩展名为.class的字节码文件,然后Java字节码被JVM解释执行。

执行Java程序就是运行程序的字节码,可以在任何一个装有JVM的平台上运行字节码,JVM就是解释器。

JavacJava编译器,将Java源代码换成字节代;

JavaJava解释器,直接从类文件执行Java应用程序代码;

Cmd用法

 

第二章: 如何声明变量,常量?

声明变量:datatype variableName

如:int count;

double radious;

声明常量:final datatype ConSTANTNAME=value;

如:final double PI =3.14159;

int,float,double类型的用法,每个类型的占用多少字节?

类型

字符数

byte

1字节

char

2字节

short

2字节

int

4字节

float

4字节

long

8字节

double

8字节

boolean

至少1字节

在控制台输入:Scanner input =new Scanner(System.in);

BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));

在控制台输出:System.out.println(“  “+”  “+  );

如何进行类型转换?

进行类型转换:自动转换和强制转换p23

 

第三章

boolean数据类型声明一个具有值true或者false的变量。

Boolean lightson=true;

boolean类型数据的用法

boolean数据类型声明一个具有值true或false的变量

关系 *** 作符:>,<,>=,<=,!=,==

将true赋值给一个变量x:boolean x=true;

不能将int类型转换为boolean类型,也不能将boolean转为int/d/f/s/long

ASCII码 0-9 48-57           A-Z  65-90              a-z  97 -122

char类型数据的用法:char ch=‘a’

  1. 自增和自减 System.out.println(++ch)得到‘b’
  2. Char类型数据可以强制转换成任一一种数据:

Float->char    float->int->char

  1. Int i=(int)’A’      System.out.println(i)得到65

System.out.println("1"+1);    11

      System.out.println("1"+1+1);  111

System.out.println(‘1’+1);     50

System.out.println('1'+1+1);    51

System.out.println(‘1’);        1

P127 指定宽度和精度的表格

会使用if语句进行分支判断,比如闰年判断,程序在书本P85.

第四章:

字符数据类型用于表示单个字符。

char类型的编码是Unicode和ASCII码,一个16位Unicode占两个字节,Unicode码包括ASCII码。

(Math.random() 使用)Java随机抽数(48人),随机抽出j个_王陈锋的博客-CSDN博客_随机抽人

产生指定范围的随机数,使用Math.random()获得0.0到1.0之间的随机数。

1+Math.random()*9 表示[1~10)

第五章

求最大公约数 书本P157

Java用辗转相除法求两个整数的最大公约数_王陈锋的博客-CSDN博客

 

斐波那契数列 19期中考

Java计算Fibonacci(斐波那契)序列的前n项_王陈锋的博客-CSDN博客_java求斐波那契数列前n项

 

回文数 书本P163

输入一串字符,判断回文字符串(2种算法)_王陈锋的博客-CSDN博客

(回文素数)编写程序,显示前100个回文素数。每行显示10个数,数字中间用一个空格隔开_王陈锋的博客-CSDN博客

 

 

素数  书本P165 

Java求100以内的素数,并输出_王陈锋的博客-CSDN博客_求100以内所有素数之和并输出java

 

按值传参:按值传递值类型,引用类型的区别,比如在方法中修改int类型形参会影响实参吗?在方法中修改数组类型形参会影响实参吗?

Java中传递对象参数_王陈锋的博客-CSDN博客

Java中只有一种参数传递方法:值传递。

传递对象参数,这个值就是一个对对象的引用值。

传递基本类型值和传递引用值得差异

当传递基本数据类型的参数时,传递的是实参的值。在方法中,内容被改变,并不会影响变量的内容。

传递引用类型的参数时,传递的是对象的引用。

基本类型,按值传递

     * 举例:给朋友分享你的照片,对方接收的是你的照片的一个实际的副本,

     * 你和朋友分别对各自的照片进行 *** 作,不会影响彼此的照片!

* 引用类型:按址传递

     * 举例:给朋友分享你的照片,分享的是你上传网上的一个照片的Url(地址),

     * 你和朋友都可以通过这个地址访问照片,并对照片进行一个 *** 作!

* 引用类型:按址传递

     * 因为数组是一个引用类型。所以传递进去的是它们的引用,故在方法中互换了它们的值,也必然影响到它们原来的值.

     

声明数组,初始化数组

声明:int[]array; int array[];

创建:array=new int[10];

声明+创建:int[] array=new int[10];

初始化:  1.  int[] array= {1,2,3,4,5};     2.   array[0]=1,array[1]=2

int array[];   array={1,2,3,4,5};这种写法是错误的

第七章

声明数组变量的语法

elementType[] arrayRefVar ;    elementType arrayRefVar[];

例:double[] myList        double myList[]

数组初始化:

elementType[] arrayRefvar = {value0,value1,…,valuek};

例如:double[] mylist ={1.9,2.9,3.4,3.5};

可变长参数列表

可以把类型相同但数目可变的参数传递给方法。方法中的参数声明如下:

typeName . . . parameterName(类型名 . . .参数名)

在方法声明中,制定类型后紧跟着省略号( . . .)。只能给方法中指定一个可变长参数,同时该参数必须是最后一个参数。任何常规参数必须在它之前。

Java将可变长参数当成数组对待。

数组翻倍

编写程序实现Queue类,使之初始数组的大小为8。一旦元素个数超过了大小,数组大小将会翻倍。如果一个元素从数组的开始部分移除,你需要将数组中的所有元素往左边改变一个位置。

队列(Queue)是一种以“先进先出”的方式存放数据的数据结构。设计一个名为Queue的类用于存储整数_王陈锋的博客-CSDN博客_设计一个名为queue的队列类用于存储整数

 

第九章

关键字this引用对象自身,它也可以在构造方法内部用于调用同一个类的其他构造方法。关键字this是一个对象可以用来引用自身的引用名。

静态变量被类中的所有对象所共享。静态方法不能访问类中的实例成员(即实例数据域和方法)。、静态变量将变量值存储在一个公共的内存地址。要声明一个静态变量或定义一个静态方法,就要在这个变量或方法的声明中加上修饰符static.

类用来定义对象的数据域以及方法,使用通用类来定义同一类型的对象。

uml

抽象类,抽象方法,继承调用实现_王陈锋的博客-CSDN博客

 

UML

1、- 是private 的意思,对应私有成员(变量、方法)

2、+ 是public 的意思,公开给外部访问的成员(变量、方法)

3、# 是protected的意思,只能在本类或子类访问成员(变量、方法)

4、UML 规定的属性(Attribute)表达式

5、下划线是共享的static类型

第十一章

关键字super代指父类,可以用于调用父类中的普通方法和构造方法。

调用父类构造方法的语法是:

super()或者super(arguments);

构造函数(方法)没有返回类型,甚至没有void

函数(方法)有返回类型或者void

P287   复习题 9.5.6

构造方法必须和所在类的名字相同(参数不同)

构造方法是用new调用的,用来初始化对象

引用类型的数据域默认类型是null

数值类型的数据与默认值是0

Boolean类型数据域默认值是false

静态变量、常量、方法

P294   P295复习题

实例方法可以调用实例方法、静态方法、访问实例数据域、静态数据域

静态方法只能调用静态方法,访问静态数据域

也就是说,在一个类中非静态变量、方法(没有用static修饰的)不能被静态方法调用

例如:一个类F,f为F的一个实例对象,

Class F{

         Int i;

         Static int s;

         Public m1(){};

         Public static m2(){};

Public static void main(Stirng[] args){

         Int k=f.i   √          f.s  f.m1()    f.m2()   都√

         K=F.i ×     k=F.s √   F.m1 ×    F.m2 √

}

}

this

this指向的是类中的成员变量

P310 9.14.2    9.14.3

私有private 只能修饰类的成员,public可以修饰类或者类的成员

但是在局部变量上用private或者public都会导致编译错误

P298程序清单9-8  Circle类

Java子类不能重写(覆盖)父类的静态方法

面向对象 2大题单个类 和 继承类    

包装类 integer Double

基本类型 int  double

Double d=new Double();   ×   ----------Double d=new Double(1);√

      Integer i=Integer.valueOf(23);//i赋值为23

            Integer j=Integer.parseInt("23",8);将23转为8进制

如何创建interger 对象:

Integer i=new Integer(23);

Integer i=new Integer(“23”);

调用构造函数 利用Integer的valueOf()方法

如何获取Integer类型对象的数值:i.intValue()

java常见的标识符:public static protect default final abstract  interface volatile

关键字:goto const import package byte char boolean short long double int void null

         true false  if  else   while for switch  case default  do break continue return

         instanceof

重载:函数名相同参数不同

重写:函数名参数相同,必须发生在子类和父类中

P203 6.3    6.4

P328 程序清单10-8栈

P360 super关键字的使用方法

P363方法重写        P364 方法重载                P366 多态

P370关键字instanceof    P373  11.9.3

P383表11-2

P441  接口

学习通作业

封装,继承,多态,抽象的含义,三者区别

抽象类与接口的区别

重写与重载区别

重写在继承下使用,要重写一个方法,需要在子类中使用和父类一样的签名来对该方法进行定义。

重载意味着使用同样的名字但是不同的签名来定义多个方法。

重写意味着在子类中提供一个对方法的新的实现。

方法重写发生在具有继承关系的不同类中;

方法重载可以发生在同一个类中,也可以发生在具有继承关系的不同类中。

方法重写具有同样的签名;

方法重载具有同样的名字但是不同的参数列表。

instanceof 运算符 用于:判断 该运算符前面引用类型变量指向的对象是否是后面类,或者其子类、接口实现类创建的对象。如果是则返回true,否则返回false,

几何图形(Geometric)类,圆(Circle)类,矩形(Rectangle)类这个案例的代码。

抽象类(abstract class)和接口(interface)有什么异同?

抽象类,抽象方法,继承调用实现_王陈锋的博客-CSDN博客

 

接口的实现,Usb接口_王陈锋的博客-CSDN博客

 

相同点:

1.抽象类和接口都不能被实例化,但可以定义抽象类和接口类型的引用。

2.一个类如果继承了抽象类和接口,必须要对其中的抽象方法全部实现。(接口中方法默认的是public abstract修饰的)否则该类仍然需要被声明为抽象类。

不同点:

1、抽象类可以有构造方法,抽象方法和具体方法。

   接口不能有构造方法,而且其中的方法全部都是抽象方法。(接口中方法默认的是public abstract修饰的)

2、抽象类中的成员可以使private、默认、protected、public的。

  接口中的成员全部都是public的。

3、抽象类可以定义成员变量。

  接口中定义的成员变量其实都是常量。(接口中的成员变量默认是public static final 修饰的 

2.字符串类型如何与字节数组、字符数组的互相转换?

答:

使用字符串类型的getBytes()方法可到的字节数组、用toCharry()方法可得到字符数组。

使用字符串类型的构造方法即可将字节数组、字符数组转换成字符串类型。

3.字符串类型如何与基本数据类型互相转换?

答:

字符串类型转换为基本数据类型:调用基本数据类型对应的封装类的parseXxx()方法

基本数据类型转化为字符串类型:调用String类的valueOf()方法

4.什么是基本数据类型的封装类?自动装箱、自动坼箱的概念及举例说明。

答:就是按照面向对象的做法,将基本数据类型封装成对象。

如int的封装类是Integer

自动装箱:将基本数据类型的变量赋给对应的包装类变量

自动拆箱:将包装类对象类型直接赋给一个对应的基本数据类型变量

如 Integer num = 12;

int count = num + 1; 这里的count=13

1.什么是抽象类?什么是接口?试说明它们的区别和联系,使用接口有什么好处?

答:

由abstract修饰的类叫做抽象类。

接口相当于抽象类,但实质上是类类型。

接口中定义的方法都是抽象方法,定义的属性都是常量

在方法前默认加public abstract

在属性前默认加public static final

好处:接口和类不同,不具有单继承性,可以继承多个接口

2.一个类允许实现多个接口吗?允许继承多个类吗?

答:

允许实现多个接口,不允许继承多个类

4.什么是方法的重载?什么是方法的重写?可举例说明。

答:

在一个程序中定义多个名称相同,但参数的类型或个数不同的方法这就是方法的重载。

在继承关系中,子类会自动继承父类中公共的方法,但有时在子类中需要对继承的方法进行一些修改,对父类的方法进行重写,要求有相同的方法名、参数列表、返回值类型。

5.试说明“==”与equals(Object类)方法之间的关系? 子类重写equals方法在编程中有何意义?可举例说明。

答:

==比较的是地址

equals比较的是两个对象的内容

重写equals()是为了实现自己的区分逻辑。

例如:“abc”.equals(“abc”)返回true是我们要的结果,符合我们区分逻辑。而不是像Object的equals方法那样“this == obj”引用相等才相同。所以String需要重写Object的equals方法。

6.JAVA中对于字符串数据进行处理有哪些类?各有什么特点?它们有什么联系?可举例说明。

有三种类:

String、StirngBuffer、StringBuilder

String:String类的方法都是返回new String。即对String对象的任何改变都不影响到原对象,对字符串的修改 *** 作都会生成新的对象。

StringBuffer:可变字符序列、线程安全

StringBuilder:可变字符序列、线程不安全

*简述什么是方法重写

在继承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和参数列表,则称子类的该方法重写(覆盖)父类的方法。

*简述抽象类和接口的区别

在Java中,使用abstract关键字修饰的类称之为抽象类。

抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。

抽象类通常用于表示一种抽象的概念。

接口可以说是一种特殊的抽象类,接口中只能定义常量、抽象方法、静态方法和默认方法。

由于接口的特殊性,在定义时需要使用interface关键字。

*如何创建Integer类型对象

(调用构造函数可以利用Integer的valueOf方法)

*如何获取Integer类型对象的数值

intValue()  int   以 int 类型返回该 Integer 的值

*怎么将一个字符串 转化int

Integer.parstInt

*Integer 类的构造方法

Integer 类中的构造方法有以下两个:

Integer(int value):构造一个新分配的 Integer 对象,它表示指定的 int 值。

Integer(String s):构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5681838.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存