隔壁班的帅哥给我的

1.1简述JAVA的语言特点

a语法简单,功能强大

b分布式与安全性

c与平台无关

d多线程

1.2什么是Java虚拟机?它包括哪几个部分?

解: Java 虚拟机 (JVM ) 规范中给出了它的定义: JVM是在一台真正的机器上用软件方式实现的一台假想机。Java 虚拟机是运行 Java 程序必不可少的机制,它是编译后的Java 程序和硬件 系统之间的接口.程序员可以把 JVM 看作一个虚拟的处理 器。编译 后的 Java 程序指令并不直接在硬件系统的CPU上执行,而是由 JVM 执行。它不仅解释执行编译后的Java 指令,而且还进行安全检查。它是 Java 程序能在多平台间进行无缝移植的可靠保证 ,同时也是 Java程序的安全检验引擎。

JVM的具体实现包括指令集(等价于 CPU的指令集)、寄存器组、类文件格式、栈、垃圾收集堆 、内存区。

 

1.12列出java.lang.math类的常用方法

绝对值,三角函数,开根,对数,随机数,幂,最值

2.3请叙述标识符的定义规则

( 1 )   标识符是以字母、下画线( _)或美元符( $ )开头 ,由字母、数字、下画线( _ )或美 元

符号($)组成的字符串

( 2 )标识符区分大小写

( 3 )标识符的长度没有限制。

( 4 )注释不能插在一个标识符或关键字之中

( 5 )Java有许多关键字,它们都 有各自的特殊意义和用法,不得用它们作为标识符标 识符内 可以包 含关键字 ,但不 能 与 关 键 字 完 全 一 样 。 t hi s O ne是一个合法的标识符. t h is 是 关 键 字,不能当作标识符

2.4Java中有哪些数据类型?他们分别用什么符号表示?

a布尔类型   Boolean

b字符类型   char

C整型       byte、short、int、long

d浮点型     float、double

2.5什么是对象?基本数据类型和对象有何不同?

解:对象有两个层次的含义:现实生活中对象指的是客观世界的实体;在程序中对象就是一组变屈和相关方法的集合,其中变员表明对象的状态,方法表明对象所具有的行为。

对象是类的一个 实例。类可以看作 是一个模板—— 正在描述的对象的 模型。每当 创建一个类的实例时.得到的就是一个对象。

不同:

基本数据类型是如数或是字符这样的基本值。对象是更复杂的项,通常包含了定义对象的基本数据类型。它们所对应的内存分配的时机、使用的方式都是不同的。

2.6Java中的类型转换是什么?如何进行安全的类型转换?

将不同类型的数据转换为同一类型的数据就被称为类型转换。

转换时位数少的类型转换为位数多的类型这样就能进行安全的类型转换。

2.11设计并实现一个Course类,它代表学校的一门课程。按照实际情况,将这门课程的相关信息组织成它的属性,并定义必要的相应方法。

核心代码:

system.out.println(“the basic info of this course as fllowed;”)

system.out.println(“courseID:”+this.getID());

system.out.println(“courseName:”+this.getName());

system.out.println(“courseType:”+this.getType());

system.out.println(“classHour:”+this.getClassHou());

system.out.println(“credit:”+this.getCredit());

system.out.println(“-----------------------------------------------);

2.13设计并实现一个Vehicle类及其子类,它们代表主要交通工具,定义必要的属性信息及访问方法。

核心代码:

System.out .println ("\n--- - - - - - - -- - - - -- --- --- - - -- - ");

System.out.println("the vehicle info as followed:") ; System.out.print("brand="+this.brand+"\t");

System.out.print("color="+this.color+"\t") ; System.out.print ("price="+ this.price+" \t " ) ;

System. out .print.("number="+ this. number+ " \ t " ) ;

3.4设n为自然数,n!称为n的阶乘,规定0!=1.

                               n!=1X2X···Xn

试编制程序计算2!,4!,6!,8!和10

public static int Factorial (int n)

if (n==O) return l ;

returnn* Factorial (n-1) ;

public  void print()

System. out .println (initVal+" != " +r e s u l t ) ;

public void setinitVal (intn)

initVal=n;

private  int result, initVal;

3.5使用Java.lang.Math类,生成100个0倒99的随机整数,找出它们的最大值和最小值,并统计大于50的整数个数。

3.7编写程序打印下面图案。

3.8编写程序打印下面图案.

  

3.9打印九九乘法表

3.12温度单位转换

4.2请简述数组创建的过程。如何创建一个对象数组?

定义加初始化的过程就是数组创建的过程。

先在栈中开辟空间,初始化普通数组的引用;在堆中开辟空间初始化对象的引用及开辟空间初始化对象数据对象的属性和成员方法,最后引用指向对象的数据。

4.9定义一个一维数组,其中存储随机生成的1000个1~100的整数,统计每个整数出现的次数。  

5.4什么叫做方法重载?什么叫做方法重写?它们之间的区别是什么?

方法重载:同一个类中,可以定义同名的多个方法。它们的不同之处在于参数列表不同 ,这其中包括参数的个数不同或是对应的参数类型不完全相同。这就是方法的重载。

方法重写:如果父类中原有的方法不能满足子类的要求,可以在子类中对父类的方法重新编写代码。这称为方法重写。

1从对方法重载和方法重写的分析可以看出,它们之间的区别主要有:

2方法重载时参 数列表必须是不同的,使系统能区别出到底调用哪个方法,而方法重写时参数列表可以是相同的。

方法重载时 ,方法的 返回类 型可能不同 ,也可能相 同;而方法重写时,子类中方法的返3回类型 和父类中同名方法的返 回类型完全一样。

方法重载多出现在同一个类中,方法重写必须是在父子类中。

5.6关键字this和关键字super在成员方法中的特殊作用是什么?

5.8什么叫做静态方法和静态变量,它们同普通的成员方法和成员变量有什么区别?

静态变量:是基本数据类型,在类的外部不必创建该类的实例可以直接使用。(偷懒简写)

静态方法:方法在内存中只有一份,无论该类有多少个实例,都共用一个方法。

不同:静态变量和静态方法都可以直接使用而普通成员方法变量不行。

5.8什么是抽象类?什么是抽象方法?他们有什么特点和用处?

抽象类:定义了方法但没有定义具体实现的类

抽象方法:这种方法只有方法的声明,而没有方法的实现。这些方法在抽象类的子类中实现

5.11什么是接口?接口的作用是什么?它与抽象类有何区别?

接口是抽象类功能的另一种实现方法。可将其想象为一个“纯”的抽象类。

作用:接口的作用是为了保证多重继承,它可以定义多个类的共同屈性。而且,J av a通过允许一个类实现多个接口从 而 实现了比多 重继承更加强大的能力,并具有更加清晰的结构。

6.1什么是异常?解释“抛出”、“捕获”的含义。

异常: J av a 把程序运行中可能遇到的错误分为两类 ,一类是非致命性的,通过某种修正后程序还能继续执行。这类错误称作异常。

抛出:针对 J a va 程序中引发的可识别错误,产生与该错误相对应的异常类对象的这一过程称为抛出。

捕获:专门处理异常的过程称为捕获 。

6.2Java是如何处理异常的?

当发生异常时,程序中断执行,并输出一条信息。J ava 中,使用 t r y 语句括住可能 抛出异常的代码段,用ca t ch语句指明要捕获的异常及相应的处理代码。

6.3catch及try语句作用是什么?语法格式如何?

对于可能抛出异常的代码段,要使用 t r y 语句括住,用ca t ch 语句指明要捕获的异常及相应的处理代码。

6.5Java中常见的异常

算数异常、空指针异常、数组元素个数为负异常、数组下标越界异常、安全异常

7.1什么是泛型?为什么要使用泛型?

在设计类和接口时 ,                 说明相关的数据类型。J a va 语言允许在类或接口的定义中,用- 个 占 位符 替 代 实际 的类 类 型。 这 个 技 术 称 为 泛 型 。

使用泛型的目的::

a类型安全              b消除强制类型转换   c潜在的性能收益

11.2什么叫做流?输入输出流分别对应哪两个抽象类?

流也称数据 流,是指 在计算 机的输 入输出之间流动的数据的序列。这是一组有顺序的有起点和终点的字节集合。

输入流用抽象类 lnputStream 来实现,输出流用抽象类OutputStream 来实现。

11.3 InputStream有哪些直接子类?其功能是什么?

11.4 OutputStream有哪些直接子类?其功能是什么?

12.1什么叫做线程?什么叫做多线程?Java的多线程有何特点?

线程:是进程执行过程中产生的多条 执行线索,是比进程更小的执行单位,它在形式上同进程十分相似一—都是用一个顺序执行的语句序列来完成特定的功能。

多线程:目前大多数操作系统支持多任务 ,每一个任务就是一个进程。一个进程在其执行过程中,可以产生多个线程,即多线程。

Java多线程的特点:

12.2什么叫做线程的生命周期?线程的一个生命周期包括哪些状态?各状态之间是如何进行转换的?

从线程的创建直到线程退出运行称为线程的生命周期。

线程的一个生命周期包括以下一些状态:新建、就绪、运行、阻塞和死亡。

状态转换图:

12.3有几种创建线程的方法?分别是什么?

创建线程有两种方法,第一种是继承T h r ea d 类,定义它的 一个子类 ,这个子类就可以表示线程。

创建线程的另一种方法是实现 R u n n a b le 接口。

12.8为什么多线程系统中要引入同步机制?Java是如何实现同步的?

多线程访问共享数据时,可能会出现访问了不该访问的数据或是漏过需要访问的数据这种情况,这是因为缺乏线程和共享数据之间的协调管理机制而导致的。

为了解决类似的问题 ,Java 使用对象锁的概念,为可能同时访问共享数据的代码实例定义了一个“锁定标志”,使用 synchro nize d关键字进行同步,它提供了操作锁定标志的方法。

12.9什么叫死锁?Java同步机制中是否可以阻止死锁的发生?

在多线程竞争使用资源的程序中,可能会发生这样的情况: 一个线程等待另一个线程所待有的锁,而第二个线程又在等待第一个线程所持有的锁,也就是它们互相等待对方所持有的锁。一般来讲,每个线程都占有部分资源,而等待其 他线程占有的另外部分资源。因为每个线程都得不到运行所需的全部资源,所以每个线程都不能继续运行。就出现了死锁死锁是指多个线程相互等待使得程序无法继续运行 。

Java既不监测也没有采取办法防止死锁的出现。它的同步机制不能有效地防止死锁,

 

 

java重点知识点整理的更多相关文章

  1. Java 架构知识点整理

    架构学习 1. Java 核心技术 1.1. 基础知识 1.1.1. 进制转换 1.1.2. 异常处理 1.1.3. List 分批代码 1.1.4. 字符串分割 1.1.5. 编码风格 1.2. 并 ...

  2. java异常知识点整理

    异常处理机制:捕获异常(try-catch-finally)和声明抛弃异常(throw); 所有的异常类都直接或者间接地继承于Throwable类: java异常分为可查异常和不可查异常两种.可查异常 ...

  3. java基础知识点整理

    1.&和&&的区别? &:逻辑与(and),运算符两边的表达式均为true时,整个结果才为true. &&:短路与,如果第一个表达式为false时,第二 ...

  4. java前端知识点整理

    1.jsp内置对象?作用? request :客户端请求,包含来自 GET/POST,提供了几个用于获取 cookie, 和 session 的方法 response :网页传回用户端的回应 page ...

  5. JAVA 150道笔试题知识点整理

    JAVA 笔试题 整理了几天才整理的题目,都是在笔试或者面试碰到的,好好理解消化下,对你会有帮助,祝你找工作顺利,收到满意的 offer . 1.Java 基础知识 1.1 Java SE 语法 &a ...

  6. java知识点、重点知识点

    重点章节: 面对对象章节 重点知识点: Lambda表达式 数据:内存-->数据库 知识点一拦: 类.面向对象.对象.封装.继承.多态.消息.UML建模.数据类型(基本类型.引用类型).数据类型 ...

  7. 尚学堂Java面试题整理

    博客分类: 经典分享   1. super()与this()的差别? - 6 -  2. 作用域public,protected,private,以及不写时的差别? - 6 -  3. 编程输出例如以 ...

  8. Android 零散知识点整理

    Android 零散知识点整理 为什么Android的更新试图操作必须在主线程中进行? 这是因为Android系统中的视图组件并不是线程安全的.通常应该让主线程负责创建.显示和更新UI,启动子线程,停 ...

  9. Java 面试知识点解析(二)——高并发编程篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

随机推荐

  1. dotnet 控制台读写 Sqlite 提示 no such table 找不到文件

    在使用 dotnet 读写 Sqlite 可以通过 EF Core 的方法,但是在 EF Core 创建的数据库可能和读写的数据库不是相同的文件 在我运行代码的时候发现在通过迁移创建数据库,创建的文件 ...

  2. [板子]Kruskal

    众所周知求最小生成树的两种方法: 1.Kruskal 2.Prim 这里只挂第一种,因为noip掌握第一种就够了. 两种做法的区别可以参考这个博客:http://blog.csdn.net/molln ...

  3. maxmind geoip2使用笔记

    客户需求如下,nginx的访问日志中ip,匹配出对应的国家,省份和城市,然后给我了一个maxmind的连接参考. 查找资料,有做成hive udf的使用方式, 我们项目中一直使用 waterdrop ...

  4. java日志学习(持续更新)

    1.Java实现日志 java日志体系大体可以分为三个部分:日志门面接口.桥接器.日志框架具体实现.原生日志实现(http://www.importnew.com/16331.html) Java日志 ...

  5. HDU 2899 Strange fuction [二分]

    1.题意:给一个函数F(X)的表达式,求其最值,自变量定义域为0到100 2.分析:写出题面函数的导函数的表达式,二分求导函数的零点,对应的就是极值点 3.代码: # include <iost ...

  6. Java动态代理 ----- jdk代理与cglib代理

    1.jdk代理 针对接口进行代理,接口可以没有方法, InvocationHandler会拦截所有方法,不过好像意义不大....只能执行Object类的方法,执行结果有点奇怪... package t ...

  7. nginx部署VUE跨域访问api

    H5端配置跨域 nginx跨域配置 server { listen 80; charset utf-8; server_name you_dome_name;#location /tasklist.j ...

  8. 【题解】HDU5845 Best Division (trie树)

    [题解]HDU5845 Best Division (trie树) 题意:给定你一个序列(三个参数来根),然后请你划分子段.在每段子段长度小于等于\(L\)且子段的异或和\(\le x\)的情况下最大 ...

  9. AutoCad 二次开发 Jig操作之墙块的拖动

    测试结果: 主要思路:选择一段多段线,使用封装的jig类进行实时拖动,其原理就是在拖动的时候,确定被拖动的边,我是选择离输入第一个点最近的边作为拖动边,有了这条边,就能确定需要实时更改的点了,然后当鼠 ...

  10. js动态改变下拉框内容

    今天为大家分享一篇js动态设置select下拉菜单的默认选中项实例,具有很好的参考价值,希望对大家有所帮助. 代码实例如下: <!DOCTYPE html> <html lang=& ...