java面试回忆录

本文地址:http://blog.csdn.net/sushengmiyan/article/details/28479895

作者:sushengmiyan

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

1.报文格式定义如下:

20字符长的姓名+1字符长的性别+3字符长的年龄

姓名长度不足20的右边补空格 性别中0表示男,1表示女

年龄不足3字符的左边补0

如:

denny     0026

这一段报文解析后表示姓名为denny性别为男,年龄为26

数据库表结构如下:

create table test

(

name varchar(20) primary key,

sex varchar(1),

age varchar(3)

);

java

一,写一个方法

public String makePackage(String name, int sex, int age);

由输入的姓名,性别,年龄返回对应的报文

二、写一个方法

public void parserPackage(String package);

由输入的报文,解析后写入数据库表test中.

sql

从test中取出年龄大于16岁的前10条记录

从test中取出给定name的记录的sex,age以及按年龄排的名次

javascript

页面如下

<html>

<body>

<input id="package" type = "text"/>

<input type="button" onclick="parse()"/>

<input id="name" type="text"/>

<input id="sex" type="text"/>

<input id="age" type="text"/>

</body>

</html>

用javascript 实现方法parser() 当点击按钮的时候,按照报文格式解析id为package的文本域的内容,并将解析完的结果写入到相应的id的文本域里。

css

用css给上面的button加上背景图片

web

请求页面如下:

<html>

<body>

<form action = "testServer">

<input name = "package"type="text"/>

<input type="submit"/>

</form>

</body>

</html>

写一个servlet调用parsePackage方法将请求页面表单域中的package的值解析并写入数据库,将此servlet配置到tomcat中

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

java答案如下:</p><pre code_snippet_id="376946" snippet_file_name="blog_20140604_2_2610834" name="code" class="javascript">import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class YuchengFacetoFace
{
	//报文格式定义如下:
    //	20字符长的姓名+1字符长的性别+3字符长的年龄
    //	姓名长度不足20的右边补空格 性别中0表示男,1表示女
    //	年龄不足3字符的左边补0
    //	如:
    //	denny     0026
    //	这一段报文解析后表示姓名为denny性别为男,年龄为26
	public String makePackage(String name, int sex, int age)
	{
		//输入的合法性校验未做
		String Result = "";
		int length = name.length();
		if (length < 20)
		{
			int cutLength = 20 - length;
			for (int i = 0; i < cutLength; i++)
			{
				Result += " ";
			}
			Result += name;
		}
		Result += sex;
		//099的情况呢?
		if (age < 10)
		{
		  Result = Result + 0 + 0 + age;
		}
		else
		if (age < 100)
		{
			Result = Result + 0 + age;
		}
		else
		{
			Result += age;
		}
		return Result;
	}

	//由输入的报文,解析后写入数据库表test中.
	public void parserPackage(String Package)
	{
		String name = Package.substring(0, 19);;
		int sex = Integer.parseInt(Package.substring(20, 20));
		int age = Integer.parseInt(Package.substring(21, 23));
		/*
		 * insert into test values(name, sex, age);
		 * select top 10 * from test where age < 16
		 * select * from test where name = name odered by age
		 */
	}
	//连接MYSQL数据库并创建数据库和表
	public static void CreateDataBase() throws SQLException, ClassNotFoundException
	{
	    String driver = "com.mysql.jdbc.Driver";
	    Class.forName(driver);//加载mysql数据库,用Class.forName("驱动名称")进行加载
		//第二步,创建数据库连接,将数据库与当前文件连接起来,后面才可以对数据库进行操作
		//格式:
		String url = "jdbc:mysql://localhost:3306/Yuchengtech";//建立数据库连接地址
		Connection conn =  DriverManager.getConnection(url, "root", "admin");//连接数据库
		Statement s = conn.createStatement();
		String SQL = "insert into test(name, sex,age) values(" +'"'+ "susheng" + '"' +  ", 1, 25);";
		s.execute(SQL);
	}
	public static void main(String[] args) throws SQLException, ClassNotFoundException
	{
//		YuchengFacetoFace yff = new YuchengFacetoFace();
//		System.out.println(yff.makePackage("susheng", 0, 12));
		CreateDataBase();
	}

}

二、js的代码答案

<html>
  <head>
    <script language="javascript">
      function parse()
      {
         var content = document.getElementById("package").value;
         var name = content.substring(1,20).trim();
         var sex = content.substring(20,21);
         var age = content.substring(21,24);
         document.getElementById("name").value = name;
         document.getElementById("sex").value = sex;
         document.getElementById("age").value = age;
      }
    </script>
  </head>
  <body>
    <input id="package" type = "text"/>
    <input type="button" onclick="parse()"/>
    <input id="name" type="text"/>
    <input id="sex" type="text"/>
    <input id="age" type="text"/>
  </body>
</html>

css很简单 有个background-image:url(a.jpg);

web的答案

package com.yuchengtech;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServer extends HttpServlet {

	/**
	 * The doGet method of the servlet. <br>
	 *
	 * This method is called when a form has its tag value method equals to get.
	 *
	 * @param request the request send by the client to the server
	 * @param response the response send by the server to the client
	 * @throws ServletException if an error occurred
	 * @throws IOException if an error occurred
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String Src = request.getParameter("package");
		YuchengFacetoFace yff = new YuchengFacetoFace();
		yff.parserPackage(Src);
	}

	/**
	 * The doPost method of the servlet. <br>
	 *
	 * This method is called when a form has its tag value method equals to post.
	 *
	 * @param request the request send by the client to the server
	 * @param response the response send by the server to the client
	 * @throws ServletException if an error occurred
	 * @throws IOException if an error occurred
	 */
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String Src = request.getParameter("package");
		YuchengFacetoFace yff = new YuchengFacetoFace();
		yff.parserPackage(Src);
	}

}

java面试回忆录,布布扣,bubuko.com

时间: 2024-08-05 23:41:28

java面试回忆录的相关文章

面试回忆录「上」(腾讯/阿里/滴滴/美团...)

点击上方的终端研发部,右上角选择“设为星标”每日早9点半,技术文章准时送上公众号后台回复“学习”,获取作者独家秘制精品资料 image 往期文章 记五月的一个Android面试经 今日头条屏幕适配方案落地研究 APK瘦身-是时候给App进行减负了 即学即用Android Jetpack - Navigation 手机商对“鸿蒙”进行了密集测试:比安卓系统快? 原文地址:https://www.jianshu.com/p/4e839adcd559 作者:soulrelay 前言 也许到了金九银十,

JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结(转)

hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加得心应手. 第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好Hibernate. 比起两者的开发速度,不仅仅要考虑到两者的特性及性能,更要根据项目需求

转:最近5年133个Java面试问题列表

最近5年133个Java面试问题列表 Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入. 在我初入职场的时候,类似于 Vector 与 Array 的区别.HashMap 与 Hashtable 的区别是最流行的问题,只需要记住它们,就能在面试中获得更好的机会,但这种情形已经不复存在.如今,你将会被问到许多 Java 程序员都没有看过的领域,如 NIO,

java 面试 -- 4

Java面试知识点总结 本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺(阅读本文需要有一定的Java基础:若您初涉Java,可以通过这些问题建立起对Java初步的印象,待有了一定基础后再后过头来看收获会更大).本文的问题列表来自于http://www.nowcoder.com/discuss/3043,在此感谢原作者的无私分享:) 1. Java中的原始数据类型都有哪些,它们的大小及对应

Java 面试-- 1

JAVA面试精选[Java基础第一部分] 这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童鞋们来说,当你看到这份题目的时候,你应该感动很幸运,因为,只要你把题目中的内容都搞懂了,在笔试的时候就可以游刃有余,通过面试只有半步之遥了,笔试只能反映你的JAVA技能.不管你是面试各个级别的JAVA工程师.架构师.还是项目经理,这个系列文章都是你最宝贵的资

[转载]java面试中经常会被问到的一些算法的问题

Java面试中经常会被问到的一些算法的问题,而大部分算法的理论及思想,我们曾经都能倒背如流,并且也能用开发语言来实现过, 可是很多由于可能在项目开发中应用的比较少,久而久之就很容易被忘记了,在此我分享一下在面试中经常被问到的一些基本的算法,也当做一次知识的巩固. 排序算法的一些特点: * 排序算法的分类如下:* 1.插入排序(直接插入排序.折半插入排序.希尔排序):* 2.交换排序(冒泡泡排序.快速排序):* 3.选择排序(直接选择排序.堆排序):* 4.归并排序:* 5.基数排序.* * 关于

Java面试宝典

http://www.cnblogs.com/bluestorm/p/6429894.html Java面试宝典 面向对象的三个特征 封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象. 多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要有以下优点: 可替换性:多态对已存在代码具有可替换性. 可扩充性:增加新的子类不影响已经存在的类结构. 接口性:多态是超累通过方法签名,想子类提供一个公共接口,由子类来完善或

Java面试问题总结

前几天Java面试中遇到的问题,这只是其中的一部分问题,面试中有很多问题是关于数据结构和算法的.在这里做下总结,希望有能力的人可以试着做一下,并在评论区留下您的答案,让大家相互学习.谢谢 程序设计部分 第1题* 已知类定义如下 class Node { public Double value; public List<Node> children; } 将以下递归程序改成非递归程序(两个程序的输出应保持顺序一致) publicstaticvoid process(Node node) { fo

java面试梳理

自己整理的有关java面试过的问题,有错的请矫正. 1, Spring的核心思想 控制反转和面向切面的编程 2,Spring的核心模块 反向控制与依赖注入.Bean配置以及加载 3,Scope是什么 Scope就是IOC容器里给对象设置的场景或者说存活空间,如果对象不处于Scope的限定后,容器会销毁对象. 取值有5种  分别是singleton(单一模式),prototype(多少个请求就有多少个),request(请求完即销毁),session,globalsession. 4,hibern