1.局部变量:定义没有赋初值时,如果这个变量没使用不会报错,要是使用会出错。
(1)int i;(2)System.out.println(i);只有1编译不会报错,有2编译出错。
2.重写重载
重写方法的规则:
参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载.
返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载.
访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)
重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常.例如,
父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常.
而重载的规则:
必须具有不同的参数列表;
可以有不同的返回类型,只要参数列表不同就可以了;
可以有不同的访问修饰符;
可以抛出不同的异常;
重写和重载的区别在于:重写多态性起作用,对调用被重载过的方法可以大大减少代码的输入量,同一个方法名只要往里面传递不同的参数就可以拥有不同的功能或返回值.
3.父类中包含有参构造函数时,需要加上无参构造函数,否则子类会报错:implicit super
constructor XX is undefined.
类初始化加载顺序:
package mianshi;
public class TestA {
String s = "A";
static {
System.out.println("static(A)");
}
{
System.out.println("Nonstatic(A)");
}
public String toString() {
return "A-" + "A-";
}
public TestA() {
System.out.println("-----A()");
}
public TestA(String s) {
System.out.println("-----A(s)");
}
}
package mianshi;
public class TestB extends TestA {
// private String s;
static {
System.out.println("static(B)");
}
{
System.out.println("Nonstatic(B)");
}
public TestB() {
System.out.println("--B()");
}
private TestB(String s) {
System.out.println("--B(s)");
this.s = s;
}
@Override
public String toString() {
return s + "-B-";
}
public static void changestr(String str) {
str = "welcome";
}
public static void main(String[] args) {
TestB b = new TestB("dddd");
// System.out.println(b.toString());
// String mm ="mm";
// changestr(mm);
// System.out.println(mm+"..");
// TestB b1 = new TestB();
}
}
打印顺序:
static(A)
static(B)
Nonstatic(A)
-----A()
Nonstatic(B)
--B(s)
4.tomcat配置数据库连接池:
http://blog.csdn.net/it_man/archive/2008/01/22/2058979.aspx
5.log4j的日志信息的级别
等级可分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF则不打出任何信息
6.序列化及其作用-摘自网络
简单来说序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,流的概念这里不用多说(就是I/O),我们可以对流化后的对象进行读写操作, 也可将流化后的对象传输于网络之间(注:要想将对象传输于网络必须进行流化)!在对对象流进行读写操作时会引发一些问题,而序列化机制正是用来解决这些问题的!
类通过实现 java.io.Serializable 接口以启用其序列化功能。
可序列化类的所有子类型本身都是可序列化的.
什么时候使用序列化:
一:对象序列化可以实现分布式对象。主要应用例如:RMI要利用对象序列化运行远程主机上的服务,就像在本地机上运行对象时一样。 H%cSy)
二:java对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中,可以保存在文件中或在网络连接上传递。利用对象序列化可以进行对象的"深复制",即复制对象本身及引用的对象本身。序列化一个对象可能得到整个对象序列。
http://hi.baidu.com/yushugang/blog/item/86870f08f32b06d663d98687.html
7.rmi,ejb --摘自网络
RMI是Java的一组拥护开发分布式应用程序的API。RMI使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程方法协议(Java Remote Method Protocol)。
简单地说,这样使原先的程序在同一操作系统的方法调用,变成了不同操作系统之间程序的方法调用,由于J2EE是分布式程序平台,它一RMI机制实现程序组件在不同操作系统之间的通信。
比如,一个EJB可以通过RMI调用Web上另一台机器上的EJB远程方法。
RMI(Remote Method Invocation,远程方法调用)是用Java在JDK1.1中实现的,它大大增强了Java开发分布式应用的能力。Java作为一种风靡一时的网络开发语言,
其巨大的威力就体现在它强大的开发分布式网络应用的能力上,而RMI就是开发百分之百纯Java的网络分布式应用系统的核心解决方案之一。其实它可以被看作是RPC的Java版本。
但是传统RPC并不能很好地应用于分布式对象系统。而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用
8、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。
EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技术实现。
SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。
对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。
对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。
Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的 Stateful Session Bean 的实体。Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method。换言之,很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时,会是同一个 Bean 的 Instance 在执行。从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。
9.jspinclude指令
动态 INCLUDE 用 jsp:include 动作实现 <jsp:include page="included.jsp" flush="true" /> 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态 INCLUDE 用 include 伪码实现 , 定不会检查所含文件的变化,适用于包含静态页面 <%@ include file="included.htm" %>
10.数据库连接池机制
J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。
11.异常机制:
Error表示系统级的错误和程序不必处理的异常, 虚拟机异常。
Exception表示需要捕捉或者需要程序进行处理的异常。程序错了。
12.递归算法:
递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推得解。
http://blog.csdn.net/mzf333/archive/2009/04/19/4091653.aspx
求1到i平方和:
static long multiTotal(int i ){
if(i==1){
return 1;
}else{
return i*i+multiTotal(i-1);
}
}
1到n的阶乘:
public int factorial(int num)
{
//递归
if(num == 1)
{
return 1;
}
return num*factorial(num-1);
}
13.修饰符范围:
同一个类 同一个包 子类 全局
private ok
default ok ok
protected ok ok ok
public ok ok ok ok
14.类型运算:
byte b = 6,e=8;
byte b1 = b+e;//错误的
在表数范围内可以将int型数据直接赋值给char byte short类型的变量。
byte char short类型数据在计算时会转换成int类型计算,得出结果是int类型。
15.排序算法:
数组Arrays.sort(数组名);这个方法只是升序。
System.arraycopy(源数组,开始位置,目的数组,开始位置,拷贝个数)
冒泡:
选择:
转自:http://www.360doc.com/content/070510/16/2807_492346.html
文件操作:
--------------------------------------------------------------
jsp文件操作常用方法:
mkdir() 方法用于对文件夹的创建
delete() 方法可以删除文件夹和文件
exists() 方法是判断文件夹或文件是否存在
createNewFile() 方法是创建一个文件
listFiles() 方法是获取文件夹下的文件
read() 方法是对文件进行读取
readLine() 方法是对文件进行以行读取
write() 方法是将字符或字符串写入文件
下面就对这些方法进行示例说明
1.目录的新建与删除
mkdir()方法:
<%@ page import="java.io.*" %>
<%
String path = request.getRealPath("/file/");
String subPath = path+"mulu";
File ml = new File(subPath);
if(ml.exists())
{
ml.delete();
out.println(path + "文件夹mulu已经被删除!");
}
else
{
ml.mkdir();
out.println(path + "文件夹mulu创建成功!");
}
%>
2.文件的新建与删除
createNewFile()方法:
<%@ page import="java.io.*" %>
<%
String path = request.getRealPath("/file/");
File fileName = new File(path, "File.txt");
if(fileName.exists())
{
fileName.delete();
out.println(path + "文件File.txt文件已经被删除!");
}
else
{
fileName.createNewFile();
out.println(path + "文件File.txt创建成功!");
}
%>
3.获取文件夹下的文件
listFiles()方法:
<%@ page import="java.io.*" %>
<%
String path = request.getRealPath("/file/");
File fl = new File(path);
File list[] = fl.listFiles();
out.println("文件列表:<br>");
for(int i=0; i < list.length; i++)
{
out.println(list[i].getName()+"<br>");
}
%>
4.读取文件的内容
read()方法:
<%@ page import="java.io.*" %>
<%
String path = request.getRealPath("/file/");
FileReader fr = new FileReader(path + "File.txt");
//单个字节方式读取
int c = fr.read();
while(c != -1) //判断是否已读到文件的结尾
{
out.print((char)c); //输出读取到的数据
c = fr.read(); //从文件中读取数据
if(c == 13) //判断是否为断行字节
{
out.print("<BR>"); //输出分行标签
fr.skip(1); //略过一个字节
c = fr.read(); //读取一个字节
}
}
fr.close();
%>
还可以用读取行的方式进行对文件的读取
readLine()方法:
<%
BufferedReader br = new BufferedReader(fr);
String brl = BufferedRead.readLine();
while(brl!=null)
{
out.println(brl+"<br>");
brl = BufferedRead.readLine();
}
brl.close();
fr.close();
%>
5.写入文件
write()方法:
<%@ page import="java.io.*" %>
<%
String path = request.getRealPath("/file/");
FileWriter fw = new FileWriter(path + "File.txt");
fw.write("hello!");
fw.write("祝大家学习jsp愉快!");
fw.write("希望本文能给大家对’jsp文件操作的理解’有所帮助!");
fw.close();
%>
<a href="http://localhost:8080/k/file/File.txt">查看文件</a>
这时你只要点击"查看文件"的连接就能看到刚刚写入的字符串了!
---------------------------------------------------------------
分享到:
相关推荐
程序员面试笔试宝典 目录 前言 上篇 面试笔试经验技巧篇 第1章 面试官箴言 2 第2章 面试心得交流 9 第3章 企业面试笔试攻略 20 第4章 面试笔试技巧 42 第5章 英文面试攻略 82 第6章 智力题攻略 102 下篇 面试笔试...
《程序员面试笔试宝典》是一本专为Java程序员面试准备的综合指南,涵盖了从基础知识到实战应用的广泛内容。这份PDF文档是书籍的PAD版本,提供了高清的阅读体验,特别适合那些正在为Java面试笔试做准备的开发者们。...
《iOS程序员面试笔试宝典》是一本为iOS开发者准备的面试和笔试准备资料,由猿媛之家组织编纂,蒋信厚等作者编著。这本书属于电气信息工程丛书系列,由机械工业出版社出版。该书的编写目的主要是帮助程序员们在求职...
【程序员面试笔试宝典(全)】是一本针对IT行业求职者,特别是刚毕业大学生的面试指导书籍。书中强调了面试技巧和准备的重要性,旨在帮助求职者顺利通过面试,找到适合自己的工作。以下是对该书内容的详细解读: ...
《中国银行面试笔试宝典》是一份集合了中国银行面试及笔试相关知识的综合资料,旨在帮助应聘者更好地准备和应对这一重要的职业门槛。这份宝典涵盖了近年来的面试真题、笔试题型以及金融行业的核心知识,同时也包含了...
本资料集合包含了多个知名公司的面试笔试题目,如Google、百度、中软、腾讯、迅雷和网易等,这些都是在IT领域极具影响力的公司。了解这些公司的面试笔试题,有助于应聘者更好地准备,提升自己的竞争力。 Google的...
根据提供的文件信息,我们可以推断出这...综上所述,《Java程序员面试笔试宝典》这本书旨在全方位地帮助Java开发者们提高自己的技术水平和面试成功率,无论是对于初学者还是有一定工作经验的专业人士都非常有参考价值。
"SQL Server 面试笔试试题及答案" 本资源摘要提供了 SQL Server 面试笔试试题及答案,涵盖了数据库管理、数据模型、数据结构、数据库优化、SQL 语言等多方面的知识点。通过本资源,读者可以快速掌握 SQL Server 的...
"Java面试笔试题大汇总(最全+详细答案)"这份资料提供了全面的Java面试题及解答,旨在帮助求职者充分准备,提高面试成功率。 首先,Java的基础知识是任何面试的基础。这包括Java语言的基本语法,如变量、数据类型、...
《程序员面试笔试宝典》压缩第二卷
JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题汇总JSD面试笔试题...
香港的JAVA程序员面试笔试题目可能涵盖以下几个关键领域: 1. **基础语法**:面试可能会开始于一些基本的语法问题,如类、对象、封装、继承、多态等概念。此外,接口、抽象类的区别及其使用场景也是常见的面试题。 ...
何昊与叶向阳所著的《程序员面试笔试宝典》应运而生,为渴望在职场竞争中脱颖而出的程序员们提供了一套全面的准备策略。 开篇第一章“面试官箴言”深刻揭示了面试官在评估候选人时的标准与关注点。这不仅是对面试官...
《程序员面试笔试宝典》是由何昊和叶向阳两位专家共同编著的一本针对程序员面试和笔试的必备参考资料。这本书全面涵盖了计算机科学和技术领域的基础知识,以及在面试中常见的问题和解题策略,旨在帮助程序员们提升...
FPGA面试笔试题目是评估工程师对现场可编程门阵列(Field-Programmable Gate Array)技术理解的重要手段。以下是一些关于FPGA的基础知识,包括同步逻辑与异步逻辑、时序设计、建立时间与保持时间、亚稳态以及系统...
《C语言深度解剖:解开程序员面试笔试的秘密》是一本专为C语言学习者和面试者准备的指导书籍。它深入探讨了C语言的核心概念、语法特性以及在实际编程和面试中的应用,旨在帮助读者更好地理解和掌握这门基础且强大的...
2019HR实用经典面试笔试题库合集(51个文档): 10_HR经理面试问题样例大全(30余种能力考查).doc 10分钟面试招到核心员工(30页).doc 11_ERP面试题.doc 12_HR必备员工离职面谈样题.doc 13_IT公司面试问题.docx 14...