今天笔试记录

本文解析了Java笔试中的多个典型问题,包括String与int传值、类方法继承规则、Socket编程基础、文件遍历技巧、JSP动作使用及SQL操作等,适合准备技术面试的开发者阅读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题不难 但是自己却有很多不会做。。。

1.关于String 和int 的传值问题。中间用到String 的subString()方法。

public class StringTest {

 public static void foo(String str, int i){
  str = "hello";
  i = 1;
 }
 /**
  * @param args
  */
 public static void main(String[] args) {
  String str = "abcd";
  int i = 0;
  foo(str.substring(0, 3),i);
  System.out.println(str);
  System.out.println(i);
  
 }

 

输出结果:

abcd
0

 

答错了:subString()不改变str的,没想。答成:abc 0

2.关于for的执行顺序的,应该没问题。题简单,也忘了。

 

3.关于类的方法的继承的。是英文题,有个最关键的单词不认识 alvid好像是。记不得了,感觉就是说

有个一个类,里面有一个函数:protected void foo(int i,int j);

问在继承这个类的子类中能怎样重写这个函数的。给了几个选项找出能在他的派生类中存在的这个函数。

public class Protected {
 protected void foo(int i,int j){
  i = 0;
  j = 0;
 }
}

-----------------------------------------------------------------------------------------------------------------------------------

public class Pro2 extends Protected {

  private void foo(int i,long j){
  i = 1;
  j = 1;
 }
}
-----------------------------------------------------------------------------------------------------------------------------------

public class Pro2 extends Protected {

  public void foo(int i,long j){
  i = 1;
  j = 1;
 }
}

-----------------------------------------------------------------------------------------------------------------------------------

以上2个是正确的。说明protected方法不能被private重写,但是可以private重载,可以用public重写

 

4.关于java Socket编程的。 我一点都不会。

Thinking in java 的一个程序

//: JabberServer.java
//Very simple server that just
//echoes whatever the client sends.
import java.io.*;
import java.net.*;

public class JabberServer {
 // Choose a port outside of the range 1-1024:
 public static final int PORT = 8080;

 public static void main(String[] args) throws IOException {
  ServerSocket s = new ServerSocket(PORT);
  System.out.println("Started: " + s);
  try {
   // Blocks until a connection occurs:
   Socket socket = s.accept();
   try {
    System.out.println("Connection accepted: " + socket);
    BufferedReader in = new BufferedReader(new InputStreamReader(
      socket.getInputStream()));
    // Output is automatically flushed
    // by PrintWriter:
    PrintWriter out = new PrintWriter(new BufferedWriter(
      new OutputStreamWriter(socket.getOutputStream())), true);
    while (true) {
     String str = in.readLine();
     if (str.equals("END"))
      break;
     System.out.println("Echoing: " + str);
     out.println(str);
    }
    // Always close the two sockets...
   } finally {
    System.out.println("closing...");
    socket.close();
   }
  } finally {
   s.close();
  }
 }
} // /:~

 

具体也忘了,主要就是让客户端发送一个request请求,服务器端得到请求然后回复什么。。。

 

5.一个程序改错题,程序写的很是诡异,感觉就是打印出来指定目录下所有的文件同样输出文件的绝对路径的。但是看不懂他写的什么意思,好像是递归,但是没有非常看清楚,就找到一个错误。程序有个level看不懂在做什么,应该是调整打印格式的。

 

/**
 * 2008-08-06 上海泽众软件笔试题 第五题 桉树型展开文件夹
 *
 */
package yuhui;

import java.io.File;

/**
 * @author yuhui
 *
 */
public class FindFile {
  static void Findfile(File myfile,int level){
  if(myfile.isDirectory()){
   level++;
   for(int j = 1; j < level; j++)
    System.out.print("/t");
   System.out.println(myfile.getAbsolutePath());
   
   String[] list = myfile.list();
   
   for(int i = 0;i < list.length;i++){
    File temp = new File(myfile.toString() + "//" + list[i]);
    Findfile(temp,level);
   }
   
  }else{
   for(int j = 0; j < level; j++)
    System.out.print("/t");
   System.out.println(myfile.getName());
   level++;
  }
   
 }

 /**
  * @param args
  */
 public static void main(String[] args) {

  File myfile = new File("D://YH//test");
  Findfile(myfile,0);
 }

}

上面是刚写的,测试正确的代码。

现在明白了,原来level是控制tab的,来调整格式的。

 

6.下来是关于jsp的,问jsp有哪些动作,都有什么功能。一个也不知道。

百度:

JSP共有以下6种基本动作 jsp:include:在页面被请求的时候引入一个文件。 jsp:useBean:寻找或者实例化一个JavaBean。 jsp:setProperty:设置JavaBean的属性。 jsp:getProperty:输出某个JavaBean的属性。 jsp:forward:把请求转到一个新的页面。 jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。

 

下面是关于sql的。

7.有两个表

1)g_card

      g_cardno      varchar   8  主键

      g_cardA       bigint     8

2) g_carddetail

     g_cardno       varchar  8   主键

     g_idcard        varchar  14

     g_name         varchar   10

    g_other         varchar   10

上面是   项目名称   /    属性     /位数

 

 

题目1: 写出创建2个表的语句:

 Create   Table   g_card
  (   
      g_cardno     varchar(8)  primary key,

      g_cardA       bigint(8)

)       
   

 Create   Table   g_carddetail
  (   
      g_cardno     varchar(8)  primary key,

      g_idcard        varchar(14),

      g_name         varchar (10),

      g_other         varchar(10)
      Constraint   FK_cardno  Foreign   Key   References   g_card(g_cardno)
  )       
   

应该是这样的吧,没有环境不能测试。当时把外键的语法给忘了乱写的。

 

题目2:找出明细表里面同一个身份证号有2个以上的cardno和名字

select g_cardno, g_name, count(g_idcard) from g_carddetail group byg_idcard having count(g_idcard) > 1

没测试,大概就是这个吧。

好久没有写过这些了,都忘光了。当时想到是用group by,但是不会写了。

题目3:删除身份证号为:"XXXXXXXXXXXXX"的信息。

题目4:更新id为多少的信息。

上面2个就不写了,还没忘  呵呵:)

 

最后想起来中间还有一个关于sql的题

问selcet * from table 和select * from table where .... like %%..........................有什么区别?

还是不明白这个题是什么意思,也没有查到相关的。

 

总结:今天的笔试非常的糟糕,不过 呵呵 没什么。看来要学的还有要复习的还有很多很多。慢慢来吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值