1.java优缺点

优点 :纯面对对象,跨平台,提供很多内置的类库,支持web开发,有较好的健壮性和安全性
缺点 : 速度慢,跨平台不能像其他的语言一样接近操作系统,复杂

2.java与c/c++
都是面对对象语言。java是解释性语言(一次编译永久使用),c是编译型语言,java没有指针,不支持多重继承,不需要开发人员分配内存,java跨平台

3.public static void main(String【】 args)为java的入口函数,但并不是最先运行该函数。

4.java中作用域有全局变量,局部变量
public 所有的类和对象都可以访问
protected 同一包和子类可以访问
private 只有自己可以访问
default 只有同一包中可以访问

5.一个java文件可以有多个类,但只能有一个public修饰的类

6.构造函数,和类名字相同,在new的时候一起调用,完成类的初始化,可以有多个,可以没有参数,不能继承和覆盖,可以被重载,super可以调用

7.为了克服不支持多继承,用接口(抽象类的集合)

8.clone 创造一个相同类,不会影响原类

9.反射机制是java语言允许程序自我检查,也允许对内部成员进行检查,可以动态创建类的对象

10.package——(1)解决命名冲突问题(2)使得项目更加结构化,可读性强

11.通过DLL(系统动态链接库)回调函数实现指针功能

12.面对对象是将数据和方法封装在一起,作为一个相互依赖的整体,面对过程是以事件为中心,逐步执行

13.抽象 继承封装 多态

14.面对对象开发优点:效率高 鲁棒性好 可维护性强

15.继承(子类调用父类的成员变量和方法) 组合(新类里面创建原有类的对象,重复利用已有的功能)

16.重载(同类中同名方法,不同的参数)和覆盖(子类中,同名同参)——多态

17.抽象类和接口
相同点:都不能实例化 只有实现了接口或抽象类才可以实例化
不同点:接口只能定义,不能实现,抽象可以是定义与实现 接口定义的成员变量默认为public static final

18.获得父类的类名 getClass().getName()

19.this指向当前实例对象 super 可以访问弗雷德方法或成员变量

20.标识符只能有字符、数字、下划线和$组成,不能以数字开头

21.breake跳出当前循环 continue 停止当前循环 return 返回方法,使程序返回java运行系统

22.final 声明的属性不可变 方法不可覆盖 类不可被继承
finally 是trycatch后面在return前执行
finalize是垃圾回收机制调用回收对象的函数

23.assert 软件调试方法,代码的正确性检查机制

24.static 定义的变量是全局变量 定义的方法只有对象创建了才可以使用 代码块只执行一次

25.Switch(expr) expr可以是 byte short char int

26.volatile 修饰变量放到缓冲中,提高代码效率,变量值改变缓存值不变

27.instanceof 检查对象是否是一个类

28.strictfp 精确运算浮点

29.基本数据类型 byte int short long double char boolean float

30.不可变类 ,一旦创建不可修改

31.值传递传递值,引用传递是传递地址

32.数据类型转换低到高隐式转换byte《short《char《int《long《float《double
高到低要强制转换

33.round四舍五入 ceil 向上取整 floor向下取整

34.i++先赋值后运算 ++i先运算后赋值

35.char中存储一个中文用两个字符,英文只用一个

36.字符串创建是new的是不同地址的

37.“= =”比较地址 equals比较直 hashCode(没有重写hashCode方法永远都不相同)

38.String 不可变类,一旦创建不可改变
StringBuffer 可变类,安全的
StringBilder 可变类,不安全的,遇上都是字符缓冲区
StringTokenizer是字符串分割的工具类

39.数组是对象,int[] a=new int[] int[] a={1,2} ;int[] a a=new int[]{1,2}

40.length取数组长 length()取字符串长

41.检查异常Exception可以在代码中避免

42.InputStream和OutputStream一字符为单位 Reader 和writer是以字节为单位(不会用到缓存)

43java Socket用来实现不通虚拟机或不同的计算机的通信

44.非阻塞io(NIO)是通过selector channel 和buffer实现非阻塞的IO操作

45.java序列化是指在通信的时候,将对象的状态写在流里进行网络传输或保存文件。。。

46.解释执行的三步:代码装入 代码校验 和代码执行

47.GC是垃圾回收机制

48.内存泄露:不再使用的对象长时间占用内存,并且得不到释放
解决办法:实现Key类的equals和hasCode方法。

49.堆:存放运行时创建的对象
栈:存放基本类型和引用变量

50.Collections包含大量集合接口的类【list(按顺序保存) set(元素不可重复) map(保存键值对()】
LIST(LinkedList双向列表 ArrayList不同步的 Vector同步的)
Map(HashMap可空,不安全 WeakMap IdentityHahMap)*key不可重复
Collection是集合接口

51.迭代器,遍历并选择序列中的对象

52. 进程,是并发执行的程序在执行过程中分配和管理资源的基本单位

  线程有时又被称为轻权进程或轻量级进程,也是 CPU 调度的一个基本单位。

53.同步:临界资源同一时间只有一个线程可以进行访问,异步则是谁需要就可以进行访问

54.实现多线程:(1)集成thread类,重写run方法(2)实现Runable接口,并实现run接口方法(3)实现Callable接口,重写Call()方法

55.run()是执行一个线程,同步的;start()开始执行一个线程,异步的

56.多线程的实现:(1)synchronized关键字(2)wait()方法和notify()方法(3)Lock接口

57.wait()方法不会自己“醒”,除非调用notify()或是设置时间 sleep()自己“苏醒”过来 ;

  sleep()不会释放锁机制,wait()则是在线程方法被调用后,释放锁机制

  wait()必须放在同步中使用

58.终止进程用stop()【终止进程后会释放所有的进程资源】

       或是wait()【终止进程,不会释放资源,会发生死锁】

59.synchronized是在对象本身进行使用,实现同步;Lock则是在进程之间的调度实现的同步,synchronized的性能优于Lock

60.Join()方法的作用就是调用该方法的线程,在执行完run()函数之后,在执行join()之后的代码。

61.JDBC连接数据库(1)加载驱动(2)加载驱动器(3)建立数据库连接(4)建立statement对象或preparedstatement对象(5)执行sql语句(6)访问结果集(7)关闭对象,释放所占用的资源。

62.JDBC再用commit()或者rollback()结束方法。rollback()完成事物回滚

63.Class.forName()是将类加载到JVM中

64.statement是最简单的sql      preparedstatement是带参数的sql,效率高     callablestatement提供了调用数据库存储过程的接口。

65.在获得数据量较大的时候,getString()方法容易出错,抛出异常,但是getObject()方法就不会出现这样的问题

66.JDO是用于存储某种数据仓库中的对象的标准化API

JAVA 笔试笔记的更多相关文章

  1. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  2. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  3. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  4. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

  5. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  6. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  7. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

  8. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

  9. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

随机推荐

  1. 编译安装nginx

    一.安装工具yum -y install zlib zlib-devel openssl openssl-devel pcre-devel cc-c++ autoconf automakeyum -y ...

  2. JS基础学习(二)

    昨天把网站上的基础知识看完了,下面是剩下的部分 第六节 JS Window浏览器对象模型 JavaScript全局对象,函数,变量均自动成为window对象的成员. 1.Window对象 1.获取浏览 ...

  3. OSError: libcudart.so.7.5: cannot open shared object file: No such file or directory

    在ubuntu14.04-64-bit,安装完cuda ,cudnn.opencv后, 配置完MXNet,运行demo 时出现错误,库路径环境变量问题,解决方法: sudo ldconfig /usr ...

  4. 大数据项目实践:基于hadoop+spark+mongodb+mysql+c#开发医院临床知识库系统

    一.前言 从20世纪90年代数字化医院概念提出到至今的20多年时间,数字化医院(Digital Hospital)在国内各大医院飞速的普及推广发展,并取得骄人成绩.不但有数字化医院管理信息系统(HIS ...

  5. [LINQ TO SQL]使用LINQ TO SQL创建数据库

    这篇博客将介绍如何使用LINQ TO SQL来创建数据库,以及如何映射Table之间的主外键关系. 我们的数据库表关系如下: Province与City之间1:M,City与Area之间1:M的关系. ...

  6. Python-类的属性

    类的属性,可以称为成员变量 类的方法,可以称为成员函数   对象的创建 - 创建对象的过程称之为实例化:当一个对象被创建后,包含三个方面的特性:对象句柄.属性和方法. - 句柄用于区分不同的对象(实例 ...

  7. JavaOO面向对象中的注意点(三)

    1.接口 a.关键字:interface public interface Serviceable{ //TODO } b.属性:只能是 公共 静态 常量 属性--就算不写这三个关键字,也是默认这种情 ...

  8. 解决EditText和ScrollView滑动冲突问题

    该类需要调用 OnTouchListener接口 黄色部分是需要更改部分,改为自己的edittext@Override public boolean onTouch(View view, Motion ...

  9. JavaScript高级程序设计-(3) 变量、作用域和内存问题

    传递参数 ECMAScript所有函数参数都是按值传递的,即使对象在函数内部修改了参数的值,原始的引用任然不变,局部对象在函数执行完毕后被销毁

  10. Visual Studio 禁用Resharpe插件

    和普通的插件不一样,对于Resharper7+版本需要使用启动参数:/Resharper.Suspend