日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2023/12/9 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面试题整理(答案从网上找到后整理的) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、 java中如何把String型轉(zhuǎn)化成double型的

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

當(dāng)string里的數(shù)字比較大時:

例如:
字符串“1467000000”通過Double.parseDouble以后轉(zhuǎn)化為double類型,然后我用它除以100000000。結(jié)果得到的值變成14.669999999999998。再轉(zhuǎn)化成字符串與“14.67”比較,結(jié)果是不相等。

精 度的問題!用基本類型的double類型進(jìn)行運算可能會丟失精度。而且特別大的數(shù)又沒法處理。所以如果用BigDecimal這個類問題就解決了。這個類 在java.Math包下。它可以處理任意精度的數(shù)據(jù)。對于樓主出現(xiàn)的問題,我從新寫了段代碼,供樓主參考。但是主要是還得查看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)表示結(jié)果精確4位!

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

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

??System.out.println(result+"與14.67比較的結(jié)果是"+isTrue);

?}

}

2、 Java double轉(zhuǎn)String??

把 一個double類型的值轉(zhuǎn)成string,網(wǎng)上有很多的方法,包括用String.valueOf(Double d),或者 String str = "" + d, 或者用DecimalFormat df = new DecimalFormat("#.00"), 以及用NumberFormat類等。但是,當(dāng)double的值特別大的時候,這些方法都是沒有用的,因為double類型被轉(zhuǎn)化成科學(xué)計數(shù)法了,對于小 數(shù)點后面的值就沒有保存。后來發(fā)現(xiàn)用BigDecimal bd = new BigDecimal(d),然后調(diào)用bd.setScale(arg0, arg1)這個方法特別有效。

3、 JNDI是java訪問名字和目錄服務(wù)的接口?

4、 寫出sql查詢數(shù)據(jù)庫中的第5-10條記錄

sql server 方案1:

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

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

通用公式:查詢sql server數(shù)據(jù)庫中的第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數(shù)據(jù)庫中后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 中l(wèi)imit的用法:

select * from table limit m,n
其中m是指記錄開始的index,從0開始,表示第一條記錄
n是指從第m+1條開始,取n條。

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

查詢Mysql數(shù)據(jù)庫中后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數(shù)據(jù)庫中后10條記錄

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

其中rownum為oracle的關(guān)鍵字

5、 寫出學(xué)生信息的xml文件

寫一個XML文件,文件里的內(nèi)容有姓名,年齡,注冊時間(要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、 查詢班級中的男生人數(shù),女生人數(shù)

學(xué)生表(所在班級,性別)
現(xiàn)要得出一張表,(班級,男數(shù),女?dāng)?shù))

select?所在班級,男生人數(shù)=sum(case?when?性別=

'男'?then?1?else?0?end),
????女生人數(shù)=sum(case?when?性別='女'?then?1?else?0?end)?
from?學(xué)生表
group?by?所在班級

7、 tcp和udp的區(qū)別

TCP(Transmission Control Protocol,傳輸控制協(xié)議)是基于連接的協(xié)議,也就是說,在正式收發(fā)數(shù)據(jù)前,必須和對方建立可靠的連接。一個TCP連接必須要經(jīng)過三次“對話”才能建立起來。

UDP(User Data Protocol,用戶數(shù)據(jù)報協(xié)議)是與TCP相對應(yīng)的協(xié)議。它是面向非連接的協(xié)議,它不與對方建立連接,而是直接就把數(shù)據(jù)包發(fā)送過去!
? UDP適用于一次只傳送少量數(shù)據(jù)、對可靠性要求不高的應(yīng)用環(huán)境。

tcp協(xié)議和udp協(xié)議的差別
TCP UDP
是否連接 面向連接 面向非連接
傳輸可靠性 可靠 不可靠
應(yīng)用場合 傳輸大量數(shù)據(jù) 少量數(shù)據(jù)
速度 慢 快

TCP---傳輸控制協(xié)議,提供的是面向連接、可靠的字節(jié)流服務(wù)。當(dāng)客戶和服務(wù)器彼此交換數(shù)據(jù)前,必須先在雙方之間建立一個TCP連接,之后才能傳輸數(shù)據(jù)。TCP提供超時重發(fā),丟棄重復(fù)數(shù)據(jù),檢驗數(shù)據(jù),流量控制等功能,保證數(shù)據(jù)能從一端傳到另一端。
UDP---用戶數(shù)據(jù)報協(xié)議,是一個簡單的面向數(shù)據(jù)報的運輸層協(xié)議。UDP不提供可靠性,它只是把應(yīng)用程序傳給IP層的數(shù)據(jù)報發(fā)送出去,但是并不能保證它 們能到達(dá)目的地。由于UDP在傳輸數(shù)據(jù)報前不用在客戶和服務(wù)器之間建立一個連接,且沒有超時重發(fā)等機(jī)制,故而傳輸速度很快。

8、 linux下進(jìn)程間通信(IPC)的幾種主要手段簡介:

  • 管道(Pipe)及有名管道(named pipe):管道可用于具有親緣關(guān)系進(jìn)程間的通信,有名管道克服了管道沒有名字的限制,因此,除具有管道所具有的功能外,它還允許無親緣關(guān)系進(jìn)程間的通信;
  • 信 號(Signal):信號是比較復(fù)雜的通信方式,用于通知接受進(jìn)程有某種事件發(fā)生,除了用于進(jìn)程間通信外,進(jìn)程還可以發(fā)送信號給進(jìn)程本身;linux除了 支持Unix早期信號語義函數(shù)sigal外,還支持語義符合Posix.1標(biāo)準(zhǔn)的信號函數(shù)sigaction(實際上,該函數(shù)是基于BSD的,BSD為了 實現(xiàn)可靠信號機(jī)制,又能夠統(tǒng)一對外接口,用sigaction函數(shù)重新實現(xiàn)了signal函數(shù));
  • 報文(Message)隊列(消息隊 列):消息隊列是消息的鏈接表,包括Posix消息隊列system V消息隊列。有足夠權(quán)限的進(jìn)程可以向隊列中添加消息,被賦予讀權(quán)限的進(jìn)程則可以讀走隊列中的消息。消息隊列克服了信號承載信息量少,管道只能承載無格式字 節(jié)流以及緩沖區(qū)大小受限等缺點。
  • 共享內(nèi)存:使得多個進(jìn)程可以訪問同一塊內(nèi)存空間,是最快的可用IPC形式。是針對其他通信機(jī)制運行效率較低而設(shè)計的。往往與其它通信機(jī)制,如信號量結(jié)合使用,來達(dá)到進(jìn)程間的同步及互斥。
  • 信號量(semaphore):主要作為進(jìn)程間以及同一進(jìn)程不同線程之間的同步手段。
  • 套接口(Socket):更為一般的進(jìn)程間通信機(jī)制,可用于不同機(jī)器之間的進(jìn)程間通信。起初是由Unix系統(tǒng)的BSD分支開發(fā)出來的,但現(xiàn)在一般可以移植到其它類Unix系統(tǒng)上:Linux和System V的變種都支持套接字。
  • 9、 程序 進(jìn)程 線程的區(qū)別

    進(jìn)程和線程都是由操作系統(tǒng)所體會的程序運行的基本單元,系統(tǒng)利用該基本單元實現(xiàn)系統(tǒng)對應(yīng)用的并發(fā)性。進(jìn)程和線程的區(qū)別在于:?

    簡而言之,一個程序至少有一個進(jìn)程,一個進(jìn)程至少有一個線程.?

    線程的劃分尺度小于進(jìn)程,使得多線程程序的并發(fā)性高。?

    另外,進(jìn)程在執(zhí)行過程中擁有獨立的內(nèi)存單元,而多個線程共享內(nèi)存,從而極大地提高了程序的運行效率。?

    線程在執(zhí)行過程中與進(jìn)程還是有區(qū)別的。每個獨立的線程有一個程序運行的入口、順序執(zhí)行序列和程序的出口。但是線程不能夠獨立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個線程執(zhí)行控制。?

    從邏輯角度來看,多線程的意義在于一個應(yīng)用程序中,有多個執(zhí)行部分可以同時執(zhí)行。但操作系統(tǒng)并沒有將多個線程看做多個獨立的應(yīng)用,來實現(xiàn)進(jìn)程的調(diào)度和管理以及資源分配。這就是進(jìn)程和線程的重要區(qū)別。?

    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、??? 數(shù)據(jù)庫三范式是什么

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

    第二范式就是非主屬性非部分依賴于主關(guān)鍵字

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

    數(shù)據(jù)庫表中不包含已在其它表中已包含的非主關(guān)鍵字信息。

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

    1,每一列只有一個值

    2,每一行都能區(qū)分。

    3,每一個表都不包含其他表已經(jīng)包含的非主關(guān)鍵字信息。

    12、??? ??SAX與DOM解析XML的區(qū)別

    解析xml有四種方法:DOM,SAX,DOM4j,JDOM.
    ???我們主要學(xué)了兩種:DOM和SAX.
    ???? DOM適于解析比較簡單的XML而SAX則適于解析較復(fù)雜的XML文件。各有各的好。

    SAX是基于事件流的解析,DOM是基于XML文檔樹結(jié)構(gòu)的解析
    ???? DOM和SAX的不同:
    ???? 1. DOM是基于內(nèi)存的,不管文件有多大,都會將所有的內(nèi)容預(yù)先裝載到內(nèi)存中。從而消耗很大的內(nèi)存空間。而SAX是基于事件的。當(dāng)某個事件被觸發(fā)時,才獲取相應(yīng)的XML的部分?jǐn)?shù)據(jù),從而不管XML文件有多大,都只占用了少量的內(nèi)存空間。
    ???? 2. DOM可以讀取XML也可以向XML文件中插入數(shù)據(jù),而SAX卻只能對XML進(jìn)行讀取,而不能在文件中插入數(shù)據(jù)。這也是SAX的一個缺點。
    ???? 3.SAX的另一個缺點:DOM我們可以指定要訪問的元素進(jìn)行隨機(jī)訪問,而SAX則不行。SAX是從文檔開始執(zhí)行遍歷的。并且只能遍歷一次。也就是說我們不能隨機(jī)的訪問XML文件,只能從頭到尾的將XML文件遍歷一次(當(dāng)然也可以中間截斷遍歷)。

    Serialization(序列化)是一種將對象以一連串的字節(jié)描述的過程;反序列化deserialization是一種將這些字節(jié)重建成一個對象的過程。Java序列化API提供一種處理對象序列化的標(biāo)準(zhǔn)機(jī)制。

    13、??? 多線程

    ?Java線程的創(chuàng)建和啟動:
    可以有兩種方式創(chuàng)建新的線程:
    第一種:
    1.定義線程類實現(xiàn)Runnable接口
    2.Thread myThread = new Thread(target);?? //target為Runnable接口類型
    3.Runnable中只有一個方法:public void run();用以定義線程運行體
    4.使用Runnable接口可以為多個線程提供共享的數(shù)據(jù)
    5.在實現(xiàn)Runnable接口的類的run()方法定義中可以使用Thread的靜態(tài)方法public static Thread currentThread();獲取當(dāng)前線程的引用

    第二種:
    1.可以定義一個Thread的子類并重寫其run方法如:
    class MyThread extends Thread {???
    public void run() {...}
    }???
    2.然后生成該類的對象:
    MyThread myThread = new MyThread();

    ?

    14、??? Java是Unicode編碼,unicode碼是2個字節(jié)

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

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

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

    同步意味著在一個時間點只能有一個線程可以修改哈希表,任何線程在執(zhí)行hashtable的更新操作前需要獲取對象鎖,其他線程等待鎖的釋放。

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

    18、??? Hibernate中l(wèi)oad()和get()的區(qū)別:

    load加載方法:

    Java代碼

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

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

    這句代碼不會去執(zhí)行數(shù)據(jù)庫查詢,只有用到user時才會去執(zhí)行數(shù)據(jù)庫查詢。

    get加載方法:

    Java代碼

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

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

    則立即去執(zhí)行數(shù)據(jù)庫查詢。 所以Users user = (Users)session.load(Users.class, userId);不會執(zhí)行任何sql。

    兩加載方法區(qū)別:

    區(qū)別1:如果數(shù)據(jù)庫中,沒有userId的對象。如果通過get方法加載,則返回的是一個null;如果通過load加載,則返回一個代理對象,如 果后面代碼如果調(diào)用user對象的某個屬性(比如user.getPassword())會拋出異 常:org.hibernate.ObjectNotFoundException;

    區(qū)別2:load支持延遲加載,get不支持延遲加載。

    19、??? Struts 2框架組成

    本身大致可以分為3個部分:核心控制器FilterDispatcher、業(yè)務(wù)控制器Action和用戶實現(xiàn)的企業(yè)業(yè)務(wù)邏輯組件。

    核心控制器 FilterDispatcher是Struts 2框架的基礎(chǔ),包含了框架內(nèi)部的控制流程和處理機(jī)制。

    業(yè)務(wù)控制器Action和業(yè)務(wù)邏輯組件是需要用戶來自己實現(xiàn)的。

    用戶在開發(fā)Action和業(yè)務(wù)邏輯組 件的同時,還需要編寫相關(guān)的配置文件,供核心控制器FilterDispatcher來使用。

    ?Struts 2的工作流程相對于Struts 1要簡單,與WebWork框架基本相同,所以說Struts 2是WebWork的升級版本。

    20、??? Struts2基本簡要流程如下:

    1、? 客戶端瀏覽器發(fā)出HTTP請求。

    2、根據(jù)web.xml配置,該請求被 FilterDispatcher接收。

    3、根據(jù)struts.xml配置,找到需要調(diào)用的Action類和方法, 并通過IoC方式,將值注入給Aciton。

    4、Action調(diào)用業(yè)務(wù)邏輯組件處理業(yè)務(wù)邏輯,這一步包含表單驗證。

    5、Action執(zhí)行完畢,根據(jù) struts.xml中的配置找到對應(yīng)的返回結(jié)果result,并跳轉(zhuǎn)到相應(yīng)頁面。6、返回HTTP響應(yīng)到客戶端瀏覽器。

    21、Ajax的優(yōu)點?
    ??? Ajax的給我們帶來的好處大家基本上都深有體會,在這里我只簡單的講幾點:?
    1、最大的一點是頁面無刷新,在頁面內(nèi)與服務(wù)器通信,給用戶的體驗非常好。?
    2、使用異步方式與服務(wù)器通信,不需要打斷用戶的操作,具有更加迅速的響應(yīng)能力。?
    3、可以把以前一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端,利用客戶端閑置的能力來處理,減輕服務(wù)器和帶寬的負(fù)擔(dān),節(jié)約空間和寬帶租用成本。并且減輕服務(wù)器的負(fù)擔(dān),ajax的原則是“按需取數(shù)據(jù)”,可以最大程度的減少冗余請求,和響應(yīng)對服務(wù)器造成的負(fù)擔(dān)。
    4、基于標(biāo)準(zhǔn)化的并被廣泛支持的技術(shù),不需要下載插件或者小程序。

    ?

    ?

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/sophine/archive/2013/05/17/3083921.html

    總結(jié)

    以上是生活随笔為你收集整理的面试题整理(答案从网上找到后整理的)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。