专业网站建设团队,河北哪里在建设,哪家公司建站的,彩票网站开发需求文档1、 java中如何把String型转化成double型的 String s 123.345; double num Double.parseDouble(s); 当string里的数字比较大时#xff1a; 例如#xff1a; 字符串“1467000000”通过Double.parseDouble以后转化为double类型#xff0c;然后我用它除以1000000… 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 a1467000000; double aaDouble.parseDouble(a); BigDecimal beichushunew BigDecimal(aa); BigDecimal chushunew BigDecimal(100000000); BigDecimal resultbeichushu.divide(chushu,new MathContext(4));//MathConText(4)表示结果精确4位 boolean isTrueString.valueOf(result).equals(14.67); System.out.println(1467000000除以100000000result); 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-m1) * 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-m1) mysql 中limit的用法 select * from table limit m,n 其中m是指记录开始的index从0开始表示第一条记录 n是指从第m1条开始取n条。 查询Mysql数据库中后10条记录 select * from t order by id desc limit 10 oracle 方案 select * from (select rownum r,* where r10) where r 4 select * from (select rownum r,* from t where rn) where rm-1 查询Oracle数据库中后10条记录 select * from t where rownum 10 order by id desc 其中rownum为oracle的关键字 5、 写出学生信息的xml文件 写一个XML文件文件里的内容有姓名年龄注册时间要Date格式的大概写三四个成员就可以了 ?xml version1.0 encodingutf-8 ? root studetns student namesaa/name age14/age CreateDate2010-11-11/CreateDate /student student namesa/name age14/age CreateDate2010-11-11/CreateDate /student student namesaaa/name age14/age CreateDate2010-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的区别 TCPTransmission Control Protocol传输控制协议是基于连接的协议也就是说在正式收发数据前必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来。 UDPUser Data Protocol用户数据报协议是与TCP相对应的协议。它是面向非连接的协议它不与对方建立连接而是直接就把数据包发送过去 UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。 tcp协议和udp协议的差别 TCP UDP 是否连接 面向连接 面向非连接 传输可靠性 可靠 不可靠 应用场合 传输大量数据 少量数据 速度 慢 快 TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前必须先在双方之间建立一个TCP连接之后才能传输数据。TCP提供超时重发丢弃重复数据检验数据流量控制等功能保证数据能从一端传到另一端。 UDP---用户数据报协议是一个简单的面向数据报的运输层协议。UDP不提供可靠性它只是把应用程序传给IP层的数据报发送出去但是并不能保证它 们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接且没有超时重发等机制故而传输速度很快。 8、 linux下进程间通信IPC的几种主要手段简介 管道Pipe及有名管道named pipe管道可用于具有亲缘关系进程间的通信有名管道克服了管道没有名字的限制因此除具有管道所具有的功能外它还允许无亲缘关系进程间的通信信 号Signal信号是比较复杂的通信方式用于通知接受进程有某种事件发生除了用于进程间通信外进程还可以发送信号给进程本身linux除了 支持Unix早期信号语义函数sigal外还支持语义符合Posix.1标准的信号函数sigaction实际上该函数是基于BSD的BSD为了 实现可靠信号机制又能够统一对外接口用sigaction函数重新实现了signal函数报文Message队列消息队 列消息队列是消息的链接表包括Posix消息队列system V消息队列。有足够权限的进程可以向队列中添加消息被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少管道只能承载无格式字 节流以及缓冲区大小受限等缺点。共享内存使得多个进程可以访问同一块内存空间是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制如信号量结合使用来达到进程间的同步及互斥。信号量semaphore主要作为进程间以及同一进程不同线程之间的同步手段。套接口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有四种方法DOMSAXDOM4jJDOM. 我们主要学了两种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 区别2load支持延迟加载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