java知识点整理

一、http和tcp/ip的区别?
http是应用层协议,主要解决如何封装数据。
tcp/ip则是传输层协议,主要解决数据如何在网络中传递。
web应用使用http协议作为应用层协议来封装成http文本协议,然后使用tcp/ip做传输层协议将信息发布到网络上。

二、xml的解析方法?
(DOM、SAX)基本的解析方式、DTD、XSLT
SAX是基于事件流的解析,DOM是基于XML文档树结构的解析

DOM解析的优缺点?
原理:解析器读入整个文档,构建一个驻留内存的树结构,然后就可以使用了。
优点:整个树结构存在内存当中方便操作,支持删除,修改,重新排列等功能;
缺点:整个文档存入内存,浪费空间和时间。
使用场合:一旦解析了文档还需多次使用这些数据,硬件资源充足(内存,cpu)。

SAX生成和解析xml的优缺点?
为解决dom的问题而生的。
优点:不用事先调入整个文档,占用资源少;代码量少于dom解析器,适用于Applet,下载!
缺点:不是持久的;事件过后,若是没有保存数据,数据就会丢失,无状态性;从事件中只能只能得到文本,但不知道来源;
使用场合:Applet;只需知道xml的少量内容,很少回头访问,机器内存少。

三、String和StringBuffer和StringBuilder都什么时候用?
String一般多用于定长字符串。
需用经常修改或追加的字符串用Stringbuffer和StringBuilder。(效率高于String)
多线程用StringBuffer,线程安全
单线程StringBuilder,线程非安全。(速度最快)

总结
1.如果要操作少量的数据用 = String
2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

四、线程和进程的区别?
线程是指进程内的一个执行单元,也是进程内的可调度实体。
与进程区别:
1.地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己的内存地址。
2.资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源。
3.线程是处理器调度的基本单位,但进程不是。
4.二者可以并发执行。

五、 for(foo(‘A‘);foo(‘B‘)&&(i<2);foo(‘C‘))  for循环的结构?
1.初始化语句
2.循环的终止控制
3.每次循环完毕时执行

六、this和super的区别?
this通常指当前对象,super则指父类的;
this的另一个用途是调用当前对象的另一个构造函数,super引用父类的某种东西。

七、public,private,protected的区别?
public修饰词,表示成员是公开的,所有其他类都可以访问;
private修饰词,表示成员是私有的,只有自身可以访问;
protected修饰词,即子类可以访问父类受保护成员,同时相同包内的其他类也可以访问protected成员。

八、什么是多态?
多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。

时间: 2024-08-11 03:20:23

java知识点整理的相关文章

Java知识点整理——(2)编程基础

一.Java命名规则 类名:对于所有的类来说,类名的首字母应该大写.如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass . 方法名:所有的方法名都应该以小写字母开头.如果方法名含有若干单词,则后面的每个单词首字母大写. 二.Java数据类型 基本数据类型(内置数据类型) byte 8位.有符号.-128-127,默认值0 short 16位.有符号.-32768-32767,默认值0 int 32位.有符号.-2,147,483,648-2,147,48

Java知识点整理(二)

List.Set.Map典型实现 HashMap/ConcurrentHashMap Java线程池 Java线程池详解 如何更好的使用JAVA线程池 Spring MVC Spring MVC架构浅析 Spring MVC实践 SpringAutowired实现原理 Spring Boot Spring Cloud Dubbo和Spring Cloud区别.优劣势? 一致性哈希 原文地址:https://www.cnblogs.com/kaleidoscope/p/9796560.html

Java知识点整理(9)——static变量和方法

1.在类中,用static变量声明的成员变量叫静态变量,或者叫做类属性.类变量.它为该类的公有变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化. 2.类变量是类的公有变量,属于类,被该类的所有实例共享,当类被载入时显式初始化. 3.可以使用“对象.类属性”来调用.不过,一般都使用“类名.类属性”. 4.static变量置于方法区中. 5.用static声明的方法称为静态方法.不需要对象就可以调用(类名/方法名). 6.static方法只能使用static变量,非static方法可以使

Java 多线程知识点整理

1.如何停止一个正在运行的线程? 使用共享变量,用volatile变量修饰,线程循环去访问该变量.如果线程因为发生某些事件进行阻塞,可以使用Thread的interrupt方法.可以使一个被阻塞的线程抛出一个中断异常,从而使线程提前结束阻塞状态,退出堵塞代码. class MyThread extends Thread { volatile boolean stop = false; public void run() { while (!stop) { System.out.println(g

容易忽略的Java知识点(整理ing)

由于最近在准备一些笔试复习到的相关Java知识点,不禁感慨:这么多年对Java懂得还太少! 1.关于finally关键字 IBMDeveloperWorks中有一篇已经说明地非常详细: 关于 Java 中 finally 语句块的深度辨析 补充下对Java设计者设计finally语句的初衷想法:我们无法知道异常发生的时间,但是我们需要确保的是无论它是否发生一些关键资源在GC回收内存时得到妥善处理(例如IO流.数据库连接等). 误区点:return前finally语句的执行机制 2.关键字sync

【Android 面试基础知识点整理】

针对Android面试中常见的一些知识点整理,Max 只是个搬运工,感谢本文中引用文章的各位作者,给大家分享了这么多优秀文章,对于其中的解析,是原作者个人见解,有错误和不准确的地方,也请大家积极指正. 本文将持续更新,同时我也将其放在Github上:Point-of-Android 同时可以看Max的个人博客:海上钢琴师 Android中的异步任务机制 Android中AsyncTak的使用与源码分析 http://blog.csdn.net/bboyfeiyu/article/details/

给Java新手的一些建议----Java知识点归纳(J2EE and Web 部分)

J2EE(Java2 Enterprise Edition) 刚出现时一般会用于开发企业内部的应用系统,特别是web应用,所以渐渐,有些人就会把J2EE和web模式画上了等号.但是其实 J2EE 里面并不仅仅是web,可以看到很多其中的规范都是通用的,目的是为了高效开发出健壮的服务企业业务模式的应用系统.J2EE中也是可以没有web界面的应用,而现在面向大众用户开发的网站往往也会使用到很多的J2EE的技术,所以J2EE和web开发的概念都是融合在了一起了. 我本人在JAVA开发刚入行的时候,也是

C#初级知识点整理及VS的简单使用

C#预处理器指令#define #undef 声明一个不需赋值的变量注意的一点事它必须放到using 上面,如 #define TEST using System.xxx; public class Task { public Task() { } } #region #endregion这是一组用来帮助管理代码布局的指令 #if #else #elif #endifif else 没什么好说的.不过这个一般要跟#define搭配使用 #warn #error输出警告或错误 #if DEBUG

Java细节整理——数组与内存控制

重点:使用Java数组之前,必须对数组对象进行初始化. 当数组的所有元素都被分配了合适的内存空间,并指定了初始值时,数组的初始化完成.程序以后将不能重新改变数组对象在内存中的位置和大小. 知识点整理: 1.数组的初始化有以下两种方式: 1)静态初始化:初始化时由程序员显示指定每个数组元素的初始值,由系统决定数组的长度. 2)动态初始化:初始化时程序员只指定数组的长度,由系统为数组元素分配初始值. 不管使用哪种方式初始化Java数组,一旦初始化完成,该数组的长度就不可改变. 代码示例: publi