本文目錄一覽:
- 1、java培訓課程有什麼內容?
- 2、用java中的位運算符如何將一個整數110從右端開始的4~7位變為0.
- 3、應該怎樣學習JAVA?順序是什麼?
- 4、怎樣將一個String轉化為Key類型(java.security.Key)。
- 5、Java 錯誤提示看不明 請高手請教
java培訓課程有什麼內容?
像這樣的問題,我已經回答了很多次,現在很多新手,特別是剛剛進入學生的學生,不知道該從哪裡入手,我整理了一些java的知識點,一共分為六個階段,273個技能點,第一階段、第二階段、第三階段、第四階段是必須要掌握的,很多機構忽悠人,就只學到第四階段,第五階段和第六階段就是高薪、高職的保障,就說說想高薪必須得把後面兩個階段的給掌握了,老鐵看了點個贊。
第一階段:java基本功修鍊
1. 認識計算機硬件
2. 計算機組成原理
3. 計算機軟件知識
4. 計算機網絡知識
5. 常用網絡應用操作
6. 認識計算機病毒
7. 邏輯訓練
8. 初識Java
9. 變量和數據類型
10. 選擇結構
11. 循環結構for
12. 循環結構do-while
13. 循環結構while
14. 多重循環及程序調試
15. 循環進階
16. 一維數組及經典應用
17. 二維數組
18. 認識類與對象
19. 方法及方法重載
20. 封裝與繼承
21. 方法重寫與多態
22. 項目實戰-汽車租賃系統
23. 抽象類和接口
24. 異常
25. 項目實戰-QuickHit
26. Java 中的集合類型
27. List 集合
28. Set 集合
29. HashMap 集合
30. Iterator
31. Collections 算法類及常用方法
32. enum
33. 包裝類及裝箱拆箱
34. String、StringBuffer 類常用方法操作字符串
35. Date、Calendar
36. Math 類常用方法
37. IO/NIO
38. 位元組輸入流(InputStream、FileInputStream、BufferedInputStream)
39. 位元組輸出流(OutputStream、FileOutputStream、BufferedOutputStream)
40. 字符輸入流(Reader、InputStreamReader、FileReader BufferedReader)
41. 位元組輸出流(Writer、OutputStreamWriter、FileWriter、BufferedWriter)
42. 文件複製
43. Serialize、Deserialize
44. 職場晉陞力:四象限時間管理與精力管理
45. 多線程(Thread、Runnable)
46. Thread LifeCycle
47. 線程的調度
48. 線程的同步和死鎖
49. Thread Pool
50. 職場晉陞力:團隊合作
51. Socket(TCP、UDP)
52. XML 概念、優勢、規範
53. XML 中特殊字符的處理
54. 使用DOM 讀取、添加、刪除、解析 XML 數據
第二階段:javaweb開發
55. 搭建和配置MySQL 數據庫
56. 數據庫增、刪、查、改語句
57. 事務
58. 視圖
59. 數據庫備份與恢復
60. 數據庫用戶管理
61. 數據庫設計
62. 項目實戰-銀行ATM 存取款機系統
63. 走進 HTML 和CSS
64. 列表表格及表單美化
65. CSS 高級操作
66. Bootstrap
67. CSS 組件
68. JavaScript 面向對象
69. JavaScript 判斷、循環
70. JavaScript 閉包
71. JavaScript 語法
72. Bootstrap 綜合案例
73. HTML5、CSS3
74. jQuery 基礎
75. jQuery 基本操作
76. jQuery 事件與特效
77. jQuery Ajax
78. jQuery 插件
79. 搭建Web 環境初識JSP
80. JSP 九大內置對象
81. JSP 實現數據傳遞和保存
82. JDBC
83. 單例模式、工廠模式
84. MVC、三層模式
85. Commons-fileupload、CKEditor
86. 分頁查詢
87. EL 與 JSTL
88. Servlet 與Filter
89. Listener 與MVC
90. Ajax 與 jQuery
91. jQuery 的Ajax 交互擴展
92. 項目實戰—使用Ajax 技術改進新聞發佈系統
93. 反射
94. Linux 系統的安裝
95. 在Linux 中管理目錄和文件
96. 在Linux 中管理用戶和權限
97. 在Linux 服務器環境下安裝軟件和部署項目
98. 職場晉陞力:職場溝通
第三階段: 企業級框架開發
99. MyBatis 環境搭建
100. SQL 映射文件
101. 動態SQL
102. MyBatis 框架原理
103. Spring IOC
104. 構造注入、依賴注入、註解
105. Spring 整合MyBatis(SqlSessionTemplate、MapperFactoryBean、事務
處理)
106. Spring 數據源(屬性文件、JNDI)、Bean 作用域
107. Spring 框架的運行原理
108. SpringMVC 體系概念
109. SpringMVC 之數據綁定、數據效驗、
110. SpringMVC 之視圖及視圖解析
111. SpringMVC 之文件上傳、本地化解析
112. SpringMVC 之靜態資源處理、請求攔截器、異常處理
113. Oracle 數據庫環境搭建、安裝
114. Oracle 數據庫 SQL、分頁、備份、還原
115. Hibernate 概念、依賴
116. HQL 查詢語言
117. Hibernate 中配置關聯映射
118. HQL 連接查詢與 Hibernate 註解
119. Struts 2 概念、依賴
120. Struts 2 配置
121. OGNL 表達式
122. Struts 2 攔截器
123. SSH 框架整合
124. 使用Maven 構建項目
125. 使用Struts 2 實現Ajax
126. Jsoup 網絡爬蟲
127. 多線程網絡爬蟲
128. 反爬及反反爬策略
129. 通用爬蟲設計
130. Echart 圖表分析
131. IKAnalyzer 分詞
132. 企業框架項目實戰-代理商管理系統
133. 企業框架項目實戰-SL 會員商城
134. 企業框架項目實戰-會員管理系統
135.企業框架項目實戰-互聯網招聘信息採集分析平台
第四階段: 前後端分離開發
136. GitHub
137. Git 基礎(checkout、pull、commit、push、merge 等)
138. Git 進階(多分支協作)
139. GitLab
140. IDEA 的使用
141. Maven 介紹(概念、倉庫、構建、命令)
142. 使用Maven 構建WEB 項目
143. 使用Maven 構建多模塊項目
144. 使用Maven 搭建私服倉庫
145. Scrum 框架介紹(三個角色、三個工件、四個會議)
146. Scrum Team 組建團隊
147. 產品需求和用戶故事
148. 每日立會
149. 使用敏捷-Scrum 方式開發管理實戰
150. 前後端分離、分佈式集群架構、垂直架構
151. SSM(SpringMVC+Spring+MyBatis)整合實戰
152. Git、Maven 私服Nexus
153. 第三方接入技術(微信、阿里)
154. MySQL 電商實戰
155. Redis(緩存服務)
156. 搜索引擎-Solr
157. 集成API Doc 工具-Swagger
158. 圖片自動化處理:Tengine+LUA+GraphicsMagic
159. 手機、郵箱註冊
160. 單點登錄 Token
161. OAuth2.0 認證
162. Jsoup 網絡爬蟲(多線程爬蟲/代理 IP 爬蟲)
163. ExecutorService 線程池
164. IK 中文分詞
165. Postman
166. ReactJS
167. webpack
168. 職場晉陞力:簡歷撰寫
169. 程序猿面試寶典之項目面試
170.大型互聯網旅遊電商項目實戰-愛旅行
第五階段: 分佈式微服架構開發
171. Spring Boot 環境搭建
172. Spring Boot 常用技能
173. Spring Boot 整合Redis
174. Spring Boot 整合Mybatis
175. 微服務架構及架構設計
176. 消息隊列
ActiveMQ\RabbitMQ
177. 分佈式事務
178. 分佈式鎖 Redis-setnx
179. Zookeeper 註冊中心
180. 基於 ActiveMQ 實現高並發
181. Docker 環境搭建
182. Docker 鏡像加速
183. Docker 容器管理
184. Docker 鏡像管理
185. Docker 容器文件備份
186. Dockerfile
187. Docker 私服倉庫
188. 真實互聯網高並發電商項目實戰-雙十一搶購
189. 可視化監控 Portainer
190. Docker Compose 容器編排
191. Docker Compose 擴容、縮容
192. Docker Swarm 集群編排
193. Jenkins 安裝、插件配置
194. Jenkins 配置普通任務
195. Jenkins 配置管道任務
196. Jenkins 自動發佈服務
197. Spring Cloud Eureka
198. Spring Cloud Feign
199. Spring Cloud Ribbon
200. Spring Cloud Zuul
201. Spring Cloud Config
202. Spring Cloud Hystrix
203. Spring Cloud Sleuth
204. Spring Boot Admin
205.Eureka 註冊原理探秘
206. Spring Cloud 大坑解讀
207. Zipkin
208. Zipkin 整合RabbitMQ
209. Zipkin 整合MySQL
210. ELK 日誌收集
211.Kafka
212. Elasticsearch 映射管理
213. Elasticsearch 查詢/複合查詢
214. Elasticsearch 集群/集群規劃
215. Elasticsearch 聚合
216. Elasticsearch 集群監控
217. Elasticsearch 插件
(Head/BigDesk)
218. Mycat 讀寫分離
219. Mycat 一主多從
220. Mycat 多主多從
221. Mycat 數據分片
222. Redis
223. Redis-Redlock
224. Elasticsearch 環境搭建
225. Elasticsearch 客戶端
226. Elasticsearch 索引管理
227. Elasticsearch 文檔管理
228. Mycat 集群
229. Jmeter 並發測試
230. Jmeter 生成測試報告
231. 微信登錄
232. 微信支付
233. 支付寶支付
234. 百度地圖
235. Sonar 本地檢測
236. Sonar +Jenkins 線上檢測
237. CI/CD
238. Spring Boot 改造愛旅行項目實戰
239. 大型互聯網票務類電商項目實戰-大覓網
240. ES6 概念(les、const)
241. ES6 對象和數組
242. ES6 函數擴展
243. VUE 環境搭建
244. VUE.JS 指令
245.VUE 交互
246. VUE 實例生命周期
247. VUE 組件
248. VUE 項目環境配置及單文件組件
249.VUE 路由
第六階段:cc服務
250. Spring Cloud Gateway
251. Consul
252. Nacos
253. Eureka、Consu、lNacos、Zookeeper 對比分析
254. Prometheus + Grafana
255. ES 分佈式存儲原理
256. NoSQL 數據庫解決方案(Redis、MongoDB)
257. OAuth2.0 認證( authorization code 模式)
258. OAuth2.0 認證( implicit 模式)
259. OAuth2.0 認證( resource owner password credentials 模式)
260. OAuth2.0 認證( client credentials 模式)
261. NAS/FastDFS 分佈式文件存儲
262. Python 基礎
263. Python 爬蟲
264. 大數據及 Hadoop 概述
265. 分佈式文件系統 HDFS
266. 分佈式計算框架MapReduce
267. 分佈式列式數據庫 HBase
268. Hadoop 綜合應用
269. 面試大局觀
270. 職業規劃
271. 項目面試
272. 具體業務場景化解決方案
273. 更多技術專題持續增加中
有不清楚的可以私信我
用java中的位運算符如何將一個整數110從右端開始的4~7位變為0.
運算符 含義 示例
~ 按位非(NOT) b = ~a
按位與(AND) c = a b
| 按位或(OR) c = a | b
^ 按位異或(XOR) c = a ^ b
右移 b = a 2
右移,左邊空出的位以0填充 b = a 2
左移 b = a 1
當然同樣有 =,|=,^=,=,=,=。
有關這些操作的細節可以參看
位運算
前面介紹的各種運算都是以位元組作為最基本位進行的。 但在很多系統程序中常要求在位(bit)一級進行運算或處理。C語言提供了位運算的功能, 這使得C語言也能像彙編語言一樣用來編寫系統程序。
一、位運算符C語言提供了六種位運算符:
按位與
| 按位或
^ 按位異或
~ 取反
左移
右移
1. 按位與運算 按位與運算符””是雙目運算符。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。
例如:95可寫算式如下: 00001001 (9的二進制補碼)00000101 (5的二進制補碼) 00000001 (1的二進制補碼)可見95=1。
按位與運算通常用來對某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a255 運算 ( 255 的二進制數為0000000011111111)。
main(){
int a=9,b=5,c;
c=ab;
printf(“a=%d\nb=%d\nc=%d\n”,a,b,c);
}
2. 按位或運算 按位或運算符「|」是雙目運算符。其功能是參與運算的兩數各對應的二進位相或。只要對應的二個二進位有一個為1時,結果位就為1。參與運算的兩個數均以補碼出現。
例如:9|5可寫算式如下: 00001001|00000101
00001101 (十進制為13)可見9|5=13
main(){
int a=9,b=5,c;
c=a|b;
printf(“a=%d\nb=%d\nc=%d\n”,a,b,c);
}
3. 按位異或運算 按位異或運算符「^」是雙目運算符。其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。參與運算數仍以補碼出現,例如 9^5可寫成算式如下: 00001001^00000101 00001100 (十進制為12)
main(){
int a=9;
a=a^15;
printf(“a=%d\n”,a);
}
4. 求反運算 求反運算符~為單目運算符,具有右結合性。 其功能是對參與運算的數的各二進位按位求反。例如~9的運算為: ~(0000000000001001)結果為:1111111111110110
5. 左移運算 左移運算符「」是雙目運算符。其功能把「 」左邊的運算數的各二進位全部左移若干位,由「」右邊的數指定移動的位數,
高位丟棄,低位補0。例如: a4 指把a的各二進位向左移動4位。如a=00000011(十進制3),左移4位後為00110000(十進制48)。6. 右移運算 右移運算符「」是雙目運算符。其功能是把「 」左邊的運算數的各二進位全部右移若干位,「」右邊的數指定移動的位數。
例如:設 a=15,a2 表示把000001111右移為00000011(十進制3)。 應該說明的是,對於有符號數,在右移時,符號位將隨同移動。當為正數時, 最高位補0,而為負數時,符號位為1,最高位是補0或是補1 取決於編譯系統的規定。Turbo C和很多系統規定為補1。
應該怎樣學習JAVA?順序是什麼?
不知道Java 學習順序的話,我提供你一條學習線路圖!
按照視頻學習的過程中,學習方法也是很重要的!一定要記得勤記筆記,整理程思維導圖,方便後續複習方便。
第一部分:JavaSE:Java語言最基本的一套庫
學習JavaEE或JavaME之前,JavaSE是必學的。
* Java開發環境搭建
* Java基礎語法
* 面向對象
* 數組
* 異常
* 集合
* 線程
* IO流
* 反射機制
* 註解Annotation
* 網絡編程
第二部分:數據庫 【MySQL + JDBC】
* 只要學習編程,數據庫是一定要學習的,是一門公共的學科。
* java、C、python、C#等程序員都需要學習數據庫。
* 數據庫產品很多: MySQL、Oracle、SqlServer、DB2……
* 我們動力節點數據庫課程包括:MySQL + Oracle
* Oracle:銀行、政府使用oracle的較多。
* MySQL:互聯網公司、一般企業使用MySQL較多。
* Oracle我們是提供視頻的。課堂上不講。
* 我們課堂上講MySQL。
* Java語言鏈接數據庫:JDBC
第三部分:WEB前端
* 系統結構:B/S【Browser/Server】 C/S【Client/Server】
* WEB是網站的意思。WEB前端是:網站當中的頁面。
* WEB前端程序是運行在瀏覽器當中的。
* HTML5 + CSS3 + JavaScript(JS)
* WEB前端也有很多框架:
– jQuery
– Bootstrap
– Vue
– NodeJS
– AugularJS
– RectJS
– LayUI
– EasyUI
…..
第四部分:JavaWEB
* Servlet
* JSP
* AJAX(是JavaScript的一部分語法,專門做頁面局部刷新)
第五部分:JavaWEB項目
* 做一個B/S結構的項目,將WEB前端和JavaWEB內容做一個整合練習。
* 其實到這裡為止,所有的系統都可以做了。但是用的技術很Low。沒有用框架。
怎樣將一個String轉化為Key類型(java.security.Key)。
用byte數組轉
java 免費源碼視頻:
package com.shop.utils;
002
003
import java.security.KeyFactory;
004
import java.security.KeyPair;
005
import java.security.KeyPairGenerator;
006
import java.security.NoSuchAlgorithmException;
007
import java.security.PrivateKey;
008
import java.security.PublicKey;
009
import java.security.Signature;
010
import java.security.spec.PKCS8EncodedKeySpec;
011
import java.security.spec.X509EncodedKeySpec;
012
import java.util.ArrayList;
013
import java.util.HashMap;
014
015
import com.shop.domain.User;
016
017
/**
018
* 驗證用戶的公私鑰
019
*
020
* @author V
021
*
022
*/
023
public class RSACheck {
024
025
public HashMapString, String getKey(){
026
KeyPairGenerator key = null;
027
try {
028
key = KeyPairGenerator.getInstance(“RSA”);
029
} catch (NoSuchAlgorithmException e) {
030
031
e.printStackTrace();
032
}
033
key.initialize(1024);
034
// 產生密鑰對
035
KeyPair keyPair = key.generateKeyPair();
036
// 得到公鑰
037
PublicKey publicKey = keyPair.getPublic();
038
// 得到私鑰
039
PrivateKey privateKey = keyPair.getPrivate();
040
041
byte[] keyBytes=publicKey.getEncoded();
042
byte[] keyBytes2=privateKey.getEncoded();
043
044
//base64加密,方便以字符串存入數據庫或文件
045
String temp = new sun.misc.BASE64Encoder().encodeBuffer(keyBytes);
046
System.out.println(“公鑰”+temp);
047
048
String temp2 = new sun.misc.BASE64Encoder().encodeBuffer(keyBytes2);
049
System.out.println(“私鑰”+temp2);
050
051
HashMapString, String keyRs=new HashMapString, String ();
052
keyRs.put(“privateKey”, temp2);
053
keyRs.put(“publicKey”, temp);
054
return keyRs;
055
}
056
057
//驗證私鑰公鑰
058
public boolean checkKey(User user,String privateKey) {
059
060
try {
061
//獲取數據庫中的用戶公鑰
062
String sql=”select code from users where name=? “;
063
String[] value = { user.getName()};
064
ArrayListHashMapString, String rs=new DBTool().doQuery(sql, value);
065
String publicKey=rs.get(0).get(“code”);
066
067
System.out.println(publicKey);
068
// base64解密
069
byte[] sikey = new sun.misc.BASE64Decoder().decodeBuffer(privateKey);
070
byte[] gongkey = new sun.misc.BASE64Decoder().decodeBuffer(publicKey);
071
072
// 將byte[]轉成密鑰
073
KeyFactory keyFactory = KeyFactory.getInstance(“RSA”); // 指定算法RSA,得到一個KeyFactory的實例
074
075
// 解碼私鑰
076
PKCS8EncodedKeySpec pKCS8EncodedKeySpec =new PKCS8EncodedKeySpec(sikey);
077
PrivateKey privateKey2 = keyFactory.generatePrivate(pKCS8EncodedKeySpec);
078
// 解碼公鑰
079
080
KeyFactory keyFactory2 = KeyFactory.getInstance(“RSA”); // 指定算法RSA,得到一個KeyFactory的實例
081
X509EncodedKeySpec x509KeySpec2 = new X509EncodedKeySpec(gongkey);
082
PublicKey publicKey2 = keyFactory2.generatePublic(x509KeySpec2);
083
084
085
Signature sig = Signature.getInstance(“MD5WithRSA”);
086
// 獲取用戶名
087
byte[] data = user.getName().getBytes(“UTF8”);
088
// 獲取私鑰
089
sig.initSign(privateKey2);
090
sig.update(data);
091
byte[] signatureByte = sig.sign();
092
sig.initVerify(publicKey2);
093
sig.update(data);
094
boolean verified = false;
095
verified = sig.verify(signatureByte);
096
if (verified) {
097
System.out.println(“驗證成功”);
098
return true;
099
} else {
100
System.out.println(“驗證失敗”);
101
return false;
102
}
103
} catch (Exception e) {
104
// e.printStackTrace();
105
System.out.println(“驗證失敗2”);
106
return false;
107
}
108
109
}
110
}
Java 錯誤提示看不明 請高手請教
如果你長期寫代碼你就明白了吧!空指針NullPointerException
給你點長期見得錯誤吧
格式化數字錯誤 Java.lang.NumberFormatException分析
(JSP)代碼段3:
String s_memberid = request.getParameter(“memberid”);
int i_memberid = Integer.parseInt(s_memberid);
描述:
以上代碼段的作用是將用戶提交的表單域memberid的值轉化為整數。
說明:
如果用戶輸入正確的數字如:1082,不會有什麼問題。然而,如果用戶輸入T1082時,由於T1082不是合法的數字格式,Java無法將其轉化為合適的數字,導致拋出Java.lang.NumberFormatException數字格式化異常。
解決方案:
在任何用到字符串轉化為數字時,捕捉異常,對異常情況進行處理按異常處理方式1:檢查到異常發生,即賦給某變量一個默認值;(可能在某些情況下導致一其他程序錯誤[比方說其他模塊中並未處理您所賦予的默認值情況,可能導致一些異常或錯誤出現。])按異常處理方式3:檢查到異常發生,提示用戶使用正確的數字格式輸入。(實現稍微麻煩一點,但是將錯誤阻擋在您的模塊前[即您提供給其他模塊的值均是安全的]。)按這種方法對程序進行改寫,在編程時稍微麻煩一點,但這的確會您的模塊更加健壯。將代碼段3按以上要求進行改寫,得到:
String s_memberid = request.getParameter(“memberid”);
int i_memberid;
try
{
i_memberid = Integer.parseInt(s_memberid);
…
}
catch(NumberFormatException nfe)
{
//方式1:(簡單,直接給該編號為一個默認值0;)
i_memberid = 0;
//方式2:(很簡陋的做法,建議使用更友好的提示方式)
out.println(“scriptalert(』您提供的用戶編號有誤,請重新輸入。』;history.go(-1);/script”);
}
原創文章,作者:XAMZK,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/317623.html