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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

问题集锦

發布時間:2025/3/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 问题集锦 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  • JAVA基礎
      • 1. Bigdecimal不能直接轉Double的問題
      • 2
  • 一、Eclipse/Tomcat
      • 1.eclipse3.6默認指向 WebContent 目錄 修改為 webRoot
      • 2. 啟動tomcat時報 org.apache.catalina.LifecycleException: Failed to start component
      • 3.eclipse中如何用遠程git代碼覆蓋本地文件里的代碼
  • MySQL
      • 1.OR的用法注意(將或者條件字段用括號括起來)
  • 前端
      • 1. 前端頁面中的某個問題總是隨機出現時的原因分析

JAVA基礎

1. Bigdecimal不能直接轉Double的問題

Bigdecimal轉Double正確方法:decimalVal.doubleValue() BigDecimal decimalVal = BigDecimal.valueOf(1.23);System.out.println(decimalVal.toString());// 1.23Double doubelVal = decimalVal.doubleValue();System.out.println(doubelVal.toString());// 1.23

平時涉及到金錢的問題都是用的Bigdecimal類型 ,但這里要提出一個很重要的注意事項:存在精度損失的轉換一定要先轉成字符串,再進行類型轉換。
將在上面代碼中BigDecimal.valueOf(1.23);改為new BigDecimal(1.23),
decimalVal.toString()打印結果為:1.229999999999999982236431605997495353221893310546875。
這是因為小數在只能認識0和1的電腦中是無法準確描述的,因此需要將其先轉成字符串,所以double轉Bigdecimal的正確方式是:

BigDecimal decimalVal = BigDecimal.valueOf(1.23);

翻看源碼會發現,其實底層就是先轉字符串再轉的Bigdecimal:

public static BigDecimal valueOf(double val) {return new BigDecimal(Double.toString(val));}

2

一、Eclipse/Tomcat

1.eclipse3.6默認指向 WebContent 目錄 修改為 webRoot

在 eclipse3.6中 , 它默認指向 的webRoot 為 WebContent目錄 ,如果 , 我們的項目 webRoot 目錄不是這個名 , 我們遷移項目時等情況就會出現404。如何更改?

第一種情況, 新建項目時的設置:
在新建對話框下一步, 進行到 Web Module 時將 Content Directory 的名字改為你想要的名字就可以了

第二情況, 項目已經存在時的設置 ,加載一個已有 web 項目到 eclipse 中時
1、增加 web Facets, 對著項目根節點,右鍵 , 選擇 Properties, 在彈出的對話框中,選擇 Project Facets ,在右邊的選擇框中,勾選 Java 和 Dynamic Web Module ,并在 Dynamic Web Module 后數字中,選擇 jsp 的版本,默認為 3.0.
2、還是在 這個界面,選中,這時,選擇列表下面會出現“ Further Configuration availabe ” 的鏈接 ,點擊這個鏈接,設置src 和 out path, 下一步,就是 Web Module 的設置了,第一項所說,更改 Content Directory 名字為你的 webRoot 目錄名字即可。

以下兩步是在eclipse 沒有自動為導入的項目進行過相關設置的前提下進行的 (也就是項目根目錄下沒有 .settings 文件夾 ) ,如果導入項目后, eclipse 自動將 java 和 Dynamic Web Module 選好了,但配置的相關路徑不正確,我們又應該怎么辦呢?
一種方式 : 將項目根目錄下的.settings 文件夾刪除,對項目進行 refresh 一下 ( 一定要刷新下 ) ,然后,再進行第二項的1 、 2 小點的步驟。這時,去增加 web Facets 時,原來的 √ 選才會被清除掉,可以進行重新設置。
另一種方式 :改配置文件,打開.setting 文件夾下的 org.eclipse.wst.common.component文件 ,用記事本打開,

<wb-module deploy-name="AMS"><wb-resource deploy-path="/" source-path="/ WebContent "/><wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/><property name="context-root" value="AMS"/><property name="java-output-path" value="/AMS/ WebContent /WEB-INF/classes"/></wb-module> 找到紅色標識的那句話,將藍色標識的文件夾目錄改為你的webRoot 目錄名 , 即可。如果沒有紅色標識這一行,就自行加上去即可。

同時

將.jsdtscope 文件
<classpathentry kind="src" path=" WebContent "/>同步改成與上面的 source-path一致

將org.eclipse.wst.common.project.facet.core.xml 文件 中
<installed facet="java" version=" 1.6 "/> 這一行指定 JDK 版本
<installed facet="jst.web" version=" 2.5 "/> 這一行指定 Web 版本 , 指 servlet 和 jsp ,另外,如果這里 改了web 的版本,注意同步把 web.xml 中的 中相關的 xmlns 指到相應的版本
2.3——

<web-app id="WebApp_ID" version="2.3" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

2.4——

<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><installed facet="wst.jsdt.web" version=" 1.0 "/> 這一行指定 JavaScript 版本

2. 啟動tomcat時報 org.apache.catalina.LifecycleException: Failed to start component

有幾種原因:
1.Web.xml里的配置寫錯了
2.路徑不對
我當時就是這個原因,因為我的eclipse默認項目的根目錄是WebContent,而我的項目里是WebRoot。解決辦法同第一個問題
3.項目中有jar沖突

3.eclipse中如何用遠程git代碼覆蓋本地文件里的代碼

  • 右擊你的文件>> Team >>Show in History
  • 之后你會發現此文件的所有版本,右擊菜單中的Compare with Workspace,可以比對所選擇的版本和本地當前版本文件的不同,找到與之前遠程git上的代碼一致的那個版本
  • 右擊需要的版本,選擇Reset>>Hard
  • MySQL

    1.OR的用法注意(將或者條件字段用括號括起來)

    例如需求是:查詢表中年齡大于10或身高小于100cm且性別是男的所有人
    當然其他實現方式可能更高效,但這里只是為了說明OR的用法。
    錯誤示例:Select * from user where sex=’男’ and age>=11 OR height<=100;
    正確示例:Select * from user where sex=’男’ and ( age>=11 OR height<=100 );
    在錯誤示例中,因為沒有加括號,OR后面的height<=100會將男和女的滿足該條件的都查出來

    前端

    1. 前端頁面中的某個問題總是隨機出現時的原因分析

    “隨機”?計算機中在相同條件下每次運行的結果不完全一致的情況就是隨機。但,程序的執行順序可是一定的,怎么會隨機呢!
    在前端代碼中,只有一種情況是最可能的隨機,那就是執行代碼的時間。代碼的運行”總時間”會是不確定的,而前端使用最多就是Ajax這種請求時間不一定的“異步”請求,當多個ajax請求在成功之后都對某個共享數據進行操作時,就會由于請求時間的長短不同而導致對共享變量的操作順序不同,最終導致結果不一致。
    舉個栗子

    <body><input id="myId" /> <!-- 這里的結果會隨機出現1和2--> </body> <script type="text/javascript">// Ajax1$.ajax({ url: "請求路徑", success: function(response){$("#myId").val(1);}});// Ajax2$.ajax({ url: "請求路徑", success: function(response){$("#myId").val(2);}}); </script>

    上面代碼中有兩個幾乎同時執行的Ajax異步請求,所以myId的結果總是顯示請求時間長的那個ajax的結果。因為先執行完的ajax給myId賦值后,又會被后執行完的ajax的賦值操作給覆蓋掉。

    總結

    以上是生活随笔為你收集整理的问题集锦的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。