现在的位置: 首页 > 综合 > 正文

黑马程序员-基础篇

2014年01月20日 ⁄ 综合 ⁄ 共 5103字 ⁄ 字号 评论关闭

------- android培训java培训、期待与您交流! ----------

1、一个".java"源文件中是否可以包括多个类?有什么限制? 可以有多个类,但只能有一个public类,并且public的类名必须与文件名一致2.java中的保留字,现在没有在java中使用。3、&和&&的区别。 &和&&都可以用作逻辑与运算符,表示逻辑与,当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。 &还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31
& 0x0f的结果为0x01。4."=="和equals方法的区别? ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(堆内存),变量也占用一块内存,例如Objet obj = new Object();变量obj是一个内存,new Object()是另一个内存,此时,变量obj所对应的内存中存储的数值就是对象占用的那块内存的首地址。对于指向对象类型的变量,如果要比较两个变量是否指向同一个对象,即要看这两个变量所对应的内存中的数值是否相等,这时候就需要用==操作符进行比较。equals方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。例如,对于下面的代码:String
a=new String("foo");String b=new String("foo");两条new语句创建了两个对象,然后用a,b这两个变量分别指向了其中一个对象,这是两个不同的对象,它们的首地址是不同的,即a和b中存储的数值是不相同的,所以,表达式a==b将返回false,而这两个对象中的内容是相同的,所以,表达式a.equals(b)将返回true。5.BS与CS的联系与区别。 C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、InFORMix或
SQL Server。客户端需要安装专用的客户端软件。B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、InFORMix或 SQL Server等数据库。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过Web Server 同数据库进行数据交互。C/S 与 B/S 区别:1.硬件环境不同:  C/S
一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.  B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行2.对安全要求不同  C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息.  B/S 建立在广域网之上, 对安全的控制能力相对弱, 可能面向不可知的用户。3.对程序架构不同  C/S
程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.  B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟.4.软件重用不同  C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.  B/S
对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子5.系统维护不同  C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统  B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.6.处理问题不同  C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统  B/S 建立在广域网上,
面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小.7.用户接口不同  C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高  B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本.8.信息流不同  C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低  B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更像交易中心。6.Integer与int的区别? int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer。在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字符串,而int默认的默认值为0,所以用el表达式在文本框中显示时,结果为0,所以,int不适合作为web层的表单数据的类型。
7.Overload和Override的区别?Overloaded的方法是否可以改变返回值的类型? Overload是重载的意思,Override是覆盖的意思,也就是重写。 重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。子类方法的访问权限只能比父类的更大,不能更小。如果父类的方法是private类型,那么,子类则不存在覆盖的限制,相当于子类中增加了一个全新的方法。至于Overloaded的方法是否可以改变返回值的类型这个问题,要看你倒底想问什么呢?这个题目很模糊。如果几个Overloaded的方法的参数列表不一样,它们的返回者类型当然也可以不一样。但我估计你想问的问题是:如果两个方法的参数列表完全一样,是否可以让它们的返回值不同来实现重载Overload。这是不行的,我们可以用反证法来说明这个问题,因为我们有时候调用一个方法时也可以不定义返回结果变量,即不要关心其返回结果,例如,我们调用map.remove(key)方法时,虽然remove方法有返回值,但是我们通常都不会定义接收返回结果的变量,这时候假设该类中有两个名称和参数列表完全相同的方法,仅仅是返回类型不同,java就无法确定编程者倒底是想调用哪个方法了,因为它无法通过返回结果类型来判断。8.TCP和UDP的区别。
TCP:传输控制协议,提供的是面向链接、可靠的字节流服务。当客户和服务器彼此交换数据之前,必须现在双方之间建立一个TCP链接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。 UDP是用户数据协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。用于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快,UDP与TCP的主要区别在于UDP不一定提供可靠的数据传输。事实上,该协议不能保证数据准确无误的到达目的地。UDP在许多方面非常有效。当某个程序的目标是尽快的传输尽可能多的信息是(其中任意给定数据的重要性相对较低),可使用UDP.ICQ短消息使用UDP协议发送消息。许多程序将使用单独的TCP链接和单独的UDP链接。重要的状态信息随可靠的TCP链接发送,而主要数据通过UDP发送。9、环境变量path和classpath的作用是什么?答:.PATH变量用于列出可执行文件的搜索路径.因为要通过命令行的命令启JAVA,JAVAC等编译工具和解释工具,系统必须要知道他们所在位置,而PATH则指明了其位置.CLASSPATH变量用于JAVA加载类的路径.只有在classpath设置的路径中的类才能被加载.10、编写程序计算1+2+3+....+100的和.public
class Num{public static void main(String[] args){int sum = 0;for(int i=1;i <=100;i++){sum+=i;}System.out.println("1到100的累加之和为:"+sum);}}11、已知一个int数组, 编程从数组中获取最大数。public class Sum {public static void main(String[] args) {int[] a= {15,10,7,-4,35};int max=a[0];for(int
b=0;bif(maxmax=a[b];}System.out.println("数组中最大数是:" + max);}}12、编写程序获取已知文件的扩展名. 注意: abc.txt的扩展名是txt, abc.java.txt的扩展名也是txt。import java.io.IOException;public class TestFileName { public static void main(String args[]){File file = new File("abc.txt");if(!file.exists()){try
{file.createNewFile();} catch (IOException e) {e.printStackTrace();}}String fname = file.getName();System.out.println(fname+":扩展名是:" +fname.substring(fname.lastIndexOf(".")+1,fname.length()));}}13、定义一个学生类, 需要有姓名, 年龄, 考试成绩三个成员属性. 属性需要私有并提供get, set方法, 可以通过构造函数进行初始化。public
class Student {//姓名, 年龄, 考试成绩public Student(String _name,int _old,int _source){String name=_name;int old=_old;int source=_source;}private String name;public void setName(String name) {this.name = name;}public String getName() {return name;}private int old;public
void setOld(int old) {this.old = old;}public int getOld() {return old;}public void setSource(int source) {Source = source;}public int getSource() {return Source;}private int Source;} 14.阐述一下你对MVC的理解。 M:model 也就是模型 V: view 也就是视图 C:control 也就是控制 -------android培训、java培训、期待与您交流!
--------

抱歉!评论已关闭.