1、 java中如何把String型转化成double型的

String s = "123.345";
double num = Double.parseDouble(s);

当string里的数字比较大时:

例如:
字符串“1467000000”通过Double.parseDouble以后转化为double类型,然后我用它除以100000000。结果得到的值变成14.669999999999998。再转化成字符串与“14.67”比较,结果是不相等。

精 度的问题!用基本类型的double类型进行运算可能会丢失精度。而且特别大的数又没法处理。所以如果用BigDecimal这个类问题就解决了。这个类 在java.Math包下。它可以处理任意精度的数据。对于楼主出现的问题,我从新写了段代码,供楼主参考。但是主要是还得查看API!代码如下:

import java.math.*;

public class oopp

{

public static void main(String[] args)

{

String a="1467000000";

double aa=Double.parseDouble(a);

BigDecimal beichushu=new BigDecimal(aa);

BigDecimal chushu=new BigDecimal(100000000);

BigDecimal result=beichushu.divide(chushu,new MathContext(4));//MathConText(4)表示结果精确4位!

boolean isTrue=String.valueOf(result).equals("14.67");

System.out.println("1467000000除以100000000="+result);

System.out.println(result+"与14.67比较的结果是"+isTrue);

}

}

2、 Java double转String

把 一个double类型的值转成string,网上有很多的方法,包括用String.valueOf(Double d),或者 String str = "" + d, 或者用DecimalFormat df = new DecimalFormat("#.00"), 以及用NumberFormat类等。但是,当double的值特别大的时候,这些方法都是没有用的,因为double类型被转化成科学计数法了,对于小 数点后面的值就没有保存。后来发现用BigDecimal bd = new BigDecimal(d),然后调用bd.setScale(arg0, arg1)这个方法特别有效。

3、 JNDI是java访问名字和目录服务的接口

4、 写出sql查询数据库中的第5-10条记录

sql server 方案1:

select top 6 * 
from Table 
where table_Id not in (select top 4 tableId from Table)

===============================

通用公式:查询sql server数据库中的第m到n条记录

select top (n-m+1) *  from t where id in (select top (m-1) id from t order by id) order

by id desc

================================

查询Sql Server数据库中后10条记录

SELECT TOP 10 FROM 表名 ORDER BY 排序列 DESC

mysql 方案:

select * from t order by id limit 5,6

==============================

select * from t order by id limit m,(n-m+1)

mysql 中limit的用法:

select * from table limit m,n
其中m是指记录开始的index,从0开始,表示第一条记录
n是指从第m+1条开始,取n条。

===============================

查询Mysql数据库中后10条记录

select * from t order by id  desc limit 10

oracle 方案:

select * from (select  rownum r,* where r<=10) where r > 4

===========================================

select * from (select rownum r,* from t where r<=n)  where r>m-1

===========================================

查询Oracle数据库中后10条记录

select * from t where rownum <=10 order by id desc

其中rownum为oracle的关键字

5、 写出学生信息的xml文件

写一个XML文件,文件里的内容有姓名,年龄,注册时间(要Date格式的),大概写三四个成员就可以了

<?xml version="1.0" encoding="utf-8" ?>
<root>
  <studetns>
    <student>
      <name>saa</name>
      <age>14</age>
      <CreateDate>2010-11-11</CreateDate>
    </student>
    <student>
      <name>sa</name>
      <age>14</age>
      <CreateDate>2010-11-11</CreateDate>
    </student>
    <student>
      <name>saaa</name>
      <age>14</age>
      <CreateDate>2010-11-11</CreateDate>
    </student>
  </studetns>
</root>

6、 查询班级中的男生人数,女生人数

学生表(所在班级,性别)
现要得出一张表,(班级,男数,女数)

select 所在班级,男生人数=sum(case when 性别=

'男' then 1 else 0 end),
    女生人数=sum(case when 性别='女' then 1 else 0 end) 
from 学生表
group by 所在班级

7、 tcp和udp的区别

TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来。

UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!
  UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。

tcp协议和udp协议的差别
TCP UDP
是否连接 面向连接 面向非连接
传输可靠性 可靠 不可靠
应用场合 传输大量数据 少量数据
速度 慢 快

TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它 们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

8、 linux下进程间通信(IPC)的几种主要手段简介:

  1. 管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;
  2. 信 号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了 支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD为了 实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数);
  3. 报文(Message)队列(消息队 列):消息队列是消息的链接表,包括Posix消息队列system V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字 节流以及缓冲区大小受限等缺点。
  4. 共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。
  5. 信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。
  6. 套接口(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由Unix系统的BSD分支开发出来的,但现在一般可以移植到其它类Unix系统上:Linux和System V的变种都支持套接字。

9、 程序 进程 线程的区别

进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:

简而言之,一个程序至少有一个进程,一个进程至少有一个线程.

线程的划分尺度小于进程,使得多线程程序的并发性高。

另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

10、    JDBC 连接Mysql

Class.forName(“com.mysql.jdbc.Driver”)

Connection connectMySQL  =  DriverManager.geiConnection(“jdbc:mysql://localhost:3306/myuser","root" ,"root" );

Statement statamentMySQL =connectMySQL.createStatement();

statement.excuteUpdate( "INSERT INTO staff(name, age, sex,address, depart, worklen,wage)" + " VALUES ('Tom1', 321, 'M', 'china','Personnel','3','3000' ) ") ;

ResultSet resultSel = statement.executeQuery( "select * from staff" );

11、    数据库三范式是什么

第一范式(1NF):字段具有原子性,不可再分。

第二范式就是非主属性非部分依赖于主关键字

第三范式(3NF)要求一个

数据库表中不包含已在其它表中已包含的非主关键字信息。

所以第三范式具有如下特征:

1,每一列只有一个值

2,每一行都能区分。

3,每一个表都不包含其他表已经包含的非主关键字信息。

12、      SAX与DOM解析XML的区别

解析xml有四种方法:DOM,SAX,DOM4j,JDOM.
   我们主要学了两种:DOM和SAX.
     DOM适于解析比较简单的XML而SAX则适于解析较复杂的XML文件。各有各的好。

SAX是基于事件流的解析,DOM是基于XML文档树结构的解析
     DOM和SAX的不同:
     1. DOM是基于内存的,不管文件有多大,都会将所有的内容预先装载到内存中。从而消耗很大的内存空间。而SAX是基于事件的。当某个事件被触发时,才获取相应的XML的部分数据,从而不管XML文件有多大,都只占用了少量的内存空间。
     2. DOM可以读取XML也可以向XML文件中插入数据,而SAX却只能对XML进行读取,而不能在文件中插入数据。这也是SAX的一个缺点。
     3.SAX的另一个缺点:DOM我们可以指定要访问的元素进行随机访问,而SAX则不行。SAX是从文档开始执行遍历的。并且只能遍历一次。也就是说我们不能随机的访问XML文件,只能从头到尾的将XML文件遍历一次(当然也可以中间截断遍历)。

Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。Java序列化API提供一种处理对象序列化的标准机制。

13、    多线程

 Java线程的创建和启动:
可以有两种方式创建新的线程:
第一种:
1.定义线程类实现Runnable接口
2.Thread myThread = new Thread(target);   //target为Runnable接口类型
3.Runnable中只有一个方法:public void run();用以定义线程运行体
4.使用Runnable接口可以为多个线程提供共享的数据
5.在实现Runnable接口的类的run()方法定义中可以使用Thread的静态方法public static Thread currentThread();获取当前线程的引用

第二种:
1.可以定义一个Thread的子类并重写其run方法如:
class MyThread extends Thread {   
public void run() {...}
}   
2.然后生成该类的对象:
MyThread myThread = new MyThread();

14、    Java是Unicode编码,unicode码是2个字节

15、    非常有用的Java程序片段

http://developer.51cto.com/art/201306/398347_1.htm

16、    在Hashtable上下文中同步是什么意思?

同步意味着在一个时间点只能有一个线程可以修改哈希表,任何线程在执行hashtable的更新操作前需要获取对象锁,其他线程等待锁的释放。

17、    HashMap不是同步的,而Hashtable是同步的。

18、    Hibernate中load()和get()的区别:

load加载方法:

Java代码

Users user = (Users)session.load(Users.class, userId);

Users user = (Users)session.load(Users.class, userId);

这句代码不会去执行数据库查询,只有用到user时才会去执行数据库查询。

get加载方法:

Java代码

Users user = (Users)session.get(Users.class, userId);

Users user = (Users)session.get(Users.class, userId);

则立即去执行数据库查询。 所以Users user = (Users)session.load(Users.class, userId);不会执行任何sql。

两加载方法区别:

区别1:如果数据库中,没有userId的对象。如果通过get方法加载,则返回的是一个null;如果通过load加载,则返回一个代理对象,如 果后面代码如果调用user对象的某个属性(比如user.getPassword())会抛出异 常:org.hibernate.ObjectNotFoundException;

区别2:load支持延迟加载,get不支持延迟加载。

19、    Struts 2框架组成

本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。

核心控制器 FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。

业务控制器Action和业务逻辑组件是需要用户来自己实现的。

用户在开发Action和业务逻辑组 件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。

Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同,所以说Struts 2是WebWork的升级版本。

20、    Struts2基本简要流程如下:

1、  客户端浏览器发出HTTP请求。

2、根据web.xml配置,该请求被 FilterDispatcher接收。

3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。

4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。

5、Action执行完毕,根据 struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。6、返回HTTP响应到客户端浏览器。

21、Ajax的优点 
    Ajax的给我们带来的好处大家基本上都深有体会,在这里我只简单的讲几点: 
1、最大的一点是页面无刷新,在页面内与服务器通信,给用户的体验非常好。 
2、使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。 
3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。
4、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。

转载于:https://www.cnblogs.com/sophine/archive/2013/05/17/3083921.html

面试题整理(答案从网上找到后整理的)相关推荐

  1. 自动化测试面试题及答案,看完后吊打面试官!

    自动化测试是什么?自动化测试学什么?自动化测试面试题及答案?–看完后吊打面试官! 一.前言 最近有童鞋和我抱怨,说网上很难搜到那些全面又合适的自动化测试面试题,这里根据我个人的经验以及收集整理的: 你 ...

  2. java面试题及答案(共享网上的资源)

    java面试题及答案(基础题122道,代码题19道) ilovelate | 13 九月, 2005 00:31 JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中 ...

  3. 自学前端1年,靠着这份面试题和答案,我找到了20K工作

    马上就是毕业季了,找工作的人多起来了.很多前端朋友想趁此换工作机会,毕竟通过面试实现跳槽涨薪一直是程序员的一个目标,我是如何拿到大厂offer并成功实现涨薪的呢? 今天给大家分享我拿到大厂offer的 ...

  4. 2022最新自动化测试面试题及答案

    自动化测试是什么?自动化测试学什么?自动化测试面试题及答案?–看完后吊打面试官! 一.前言 最近有童鞋和我抱怨,说网上很难搜到那些全面又合适的自动化测试面试题,这里根据我个人的经验以及收集整理的: 你 ...

  5. 美图php面试题目,据说是雅虎的一份PHP面试题附答案

    据说是雅虎的一份PHP面试题附答案 更新时间:2009年01月07日 23:23:32   作者: 雅虎的一份PHP面试题附答案 从网上搜集到的,据说是雅虎的面试题. 1. Which of the ...

  6. java面试题及答案2020 大汇总

    java面试题及答案2020 先收藏后点赞,以后更新及时看 文末后续更新答案,持续更新 java面试题大汇总 百度第一篇 一面 2018/9/11 来自于牛客网 1.手写ArrayList 2.手写进 ...

  7. 计算机一级考试模拟题在线测试,计算机一级考试模拟试题及答案.doc

    计算机一级考试模拟试题及答案 本文是为大家整理的20XX上半年计算机一级考试模拟试题,希望能帮助大家顺利通过考试,仅供参考! 1.GB2312-80码在计算机中用()byte存放. A)2B)1C)8 ...

  8. 10年测开经验面试35K公司后,吐血整理出高频面试题和答案!

    一:前言 在当今竞争激烈的职场环境中,拥有丰富的测试开发经验已成为众多企业青睐的重要条件之一.而在面试过程中,高频面试题更是能够考察应聘者的实际能力和知识水平.本文作者具备10年的测试开发经验,并通过 ...

  9. Java面试题及答案整理(2022年140道)持续更新

    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~博主已将这些面试题整理到一个网站上,每天更新 Java 面试题,目前有 1万多道 Jav ...

最新文章

  1. 第一次创业失败的总结 - 产品设计
  2. 安装Ruby和Rails运行环境
  3. VBA 里面注册dll
  4. 微信小程序开发(1)
  5. 与时代并肩的数字创新者
  6. Android RecyclerView详解
  7. Ribbon-4 Ribbon脱离Eureka使用
  8. Google 翻译,梦想与现实的距离有多远
  9. Git 仓库代码迁移步骤记录
  10. 通过Scanner从控制台获取数据
  11. Poj_1325 Machine Schedule -最大匹配性质题目
  12. 情人节海报psd分层模板|好的图层,任你选择
  13. [NOIp2012]开车旅行
  14. MonkeyScript使用教程
  15. python通过什么对象连接数据库步骤_python如何连接数据库
  16. scala的三个排序方法
  17. JavaMaven【二、目录结构HelloMaven】
  18. Oracle数据库资料收藏
  19. 稀疏光流python_《稀》字意思读音、组词解释及笔画数 - 新华字典 - 911查询
  20. 计算机word2010试题,对口升学计算机Word2010练习题

热门文章

  1. Vue项目中遇到了大文件分片上传的问题
  2. android 转发短信
  3. Lecture 20 Parallel Algorithms I
  4. 作业要求 20181023-3 每周例行报告
  5. 《Drupal实战》——3.3 使用Views创建列表
  6. Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)
  7. Web优化 --利用css sprites降低图片请求
  8. HTTP和HTTPS的区别(转)
  9. 你的工作单位也需善待
  10. leetcode------Subsets