简述逻辑操作(&,|,^)与条件操作(&&,||)的区别
答案:条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型
逻辑操作不会产生短路
A&&B, 当A为false时,不去计算B的值而直接返回false;当A为true时,计算B的值。
A|| B,当A为true时, 不去计算B的值而直接返回true;当A为false时,计算B的值。
分析:
这个曾经让我分不清的两个东东,今天专门拿出来做一小结,以备日后查阅。并附Java四大运算符和比较运算符简介。
1. 逻辑与(&)和逻辑或(|):
标准的逻辑与(&)和逻辑或(|),不论第一个表达式为true or false,都计算第二个表达式。
例如:if (c==0 | e++ < 100) { d=12;} //不论c是否等于0,e都被自增量。
2. 短路与(&&)和短路或(||)
A&&B, 当A为false时,不去计算B的值而直接返回false;当A为true时,计算B的值。
A || B,当A为true时, 不去计算B的值而直接返回true;当A为false时,计算B的值。
3.应用比较
短路&& 是很有用的。例如,下面的程序语句说明了短路逻辑运算符的优点,用它来防止被0除的错误:
if (denom != 0 && num / denom > 10)
既然用了短路与(&&) 运算符,就不会有当denom为0时产生的意外运行时错误。如果该行代码使用标准与 运算符(&),它将对两个运算数都求值,当出现被0除的情况时,就会产生运行时错误。
既然短路运算符在布尔逻辑运算中有效,那么就在布尔逻辑运算中全用它,而标准的AND 和OR运算符(只有一个字符)仅在位运算中使用。
4. Java四大运算符:算术运算符、位运算、关系运算、逻辑运算
另外还有比较运算符(instanceof)
A> 算术与位运算就不说了,一般不容易出错
B> 关系运算符: == > < <= >= !=
关系运算的结果为boolean,只有true和false,不像C/C++中,非0为true,0为false。
boolean flag= a<c; //这种写法是正确的.
例如: if(a == b) {} //如果是正确的,进行运算;
赋值运算符 = 是赋值的, 如: int a = 5; //不是 int a == 5;
C> 布尔逻辑运算符
布尔逻辑运算的运算数只能是布尔型,结果也为boolean型
逻辑与(&)和逻辑或(|) 及 短路与(&&)和短路或(||) 的区别见上。
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
答案:a: 两种形式 dtd,schema
b: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的)
c: 两种主要方式:dom,sax.
a: 两种定义形式 dtd(文档类型定义) schema(XML模式);
b: XML Schema和DTD都用于文档验证,但二者还有一定区别,本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的)。另外:
XML Schema是内容开放模型,可扩展,功能性强;而DTD可扩展性差;
XML Schema支持丰富的数据类型,而DTD不支持元素的数据类型,对属性的类型定义也很有限;
XML Schema支持命名空间机制,而DTD不支持;
XML Schema可针对不同情况对整个XML文档或文档局部进行验证;而DTD缺乏这种灵活性;
XML Schema完全遵循XML规范,符合XML语法,可以和DOM结合使用,功能强大;而DTD语法本身有自身的语法和要求,难以学习;
c:有DOM(文档对象模型),SAX(Simple API for XML),STAX等
DOM:文档驱动,处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问
SAX:不同于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问,且是只读的。当前浏览器不支持SAX
SAXParserFactory factory= SAXParserFactory.newInstance();
SAXParser saxparser= factory.newSAXParser();//创建SAX解析器
MyHandler handler=new MyHandler();//创建事件处理器
saxParser.parse(new File(“Sax_1.xml”),handler);//绑定文件和事件处理者
STAX:Streaming API for XML (StAX) Streaming API for XML (StAX)
是用 Java™ 语言处理 XML 的最新标准。StAX 与其他方法的区别就在于应用程序能够把 XML 作为一个事件流来处理。StAX 允许应用程序代码把这些事件逐个拉出来,而不用提供在解析器方便时从解析器中接收事件的处理程序
分享到:
相关推荐
c语言面试题,不为赚分,只希望能给各位找工作的兄弟姐妹有所 帮助
SSH常见面试题 收集了常见的面试题 java
Vue常见面试题及网友回答,收集来自阿里云社区,包括v-model, key, methods,错误处理,参数传递,父子组件,定时器,vue声明周期等问题
文思面试收集(常见NET面试题) 文思面试收集(常见NET面试题)
CC++程序员应聘常见面试题{收集}
亲自收集的java高级程序员面试题
Python常见面试题汇总,里面收集了经常被问到的Python面试题,需要面试的朋友可以看看,非常的使用
【Java面试指南】收集整理常见面试题,做最全最专业的面试宝典
《互联网面试笔记》收集和分析互联网常见面试题,并将这些面试知识整理成文方便大家查阅。主要是面向java程序员,但基础知识部分不同语言程序员(c,c++,python等)都可以参考。---持续更新中, 欢迎编辑~
本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。 许多面试题看似简单,却需要深厚的基本功才能给出...
收集的很好的面试题 阿里巴巴的Oracle DBA笔试题
Java常见面试题300, 基于个人理解与网上收集整理的资源。 有需求者自取。
省时省力:读者可以在一个地方找到大量的Python面试题,避免了自己花费大量时间和精力去收集和整理。 适合不同层次:文章中的面试题分为不同的难度级别,适合不同层次的读者进行学习和练习。 附有答案和解析:文章...
华为面试题 仕兰微面试题目 电子类 新太硬件面题 汉王笔试 飞利浦-大唐笔试归来 信威dsp软件面试题 扬智电子笔试 EE面试题
收集的一些较常见的J2EE面试题,希望能对大家有所帮助!
130道 c#中常见面试题及答案收集 请多多支持
收集了SLAM常见面试题,且大部分都给出了相关的参考答案。没有积分的同学,也可以参考博客:
《互联网面试笔记》收集和分析互联网常见面试题,并将这些面试知识整理成文方便大家查阅。主要是面向java程序员,但基础
考试类精品--《互联网面试笔记》收集和分析互联网常见面试题,并将这些面试知识整理成文方便大家查阅。主要是面向java
自己收集的一些C++常见面试题目,希望对应聘者有帮助