java知乎
因人而異、因情況而已
如果學python好,那麼Java不久完蛋了?
如果學java好,那麼python就完蛋了
二者各有所長,不能問這種問題啦。
『貳』 為什麼很多java畢業都轉行了 知乎
個人原因吧,畢竟編程還是很累的,而且要經常加班,這個做到一定階段就該考慮轉行了。
『叄』 如何自學java並找到工作 知乎
看了眾多幼稚的回答,我實在是忍不住要說兩句了
首先既然你選擇了java就要知道最核心要學習的是一個叫做面向對象的思想,至於這個思想你那個比較好的同學說每天12小時看書屬於一個干擾選項,毫無關系。
對於計算機編程尤其是面向對象思想來說,屬於一個典型的領悟性知識,不是你看書多長時間就可以的,從這個層面來說這個和佛教看經書一樣,你覺得沒悟性的人每天看12小時金剛經就能領悟么?
多的不說,撈乾的講,所謂CS和BS結構是在互聯網飛速發展以後出現的,CS就是傳統的客戶端伺服器應用,而BS是瀏覽器伺服器應用,都需要有伺服器,嚴格說單機版的軟體(完全不上網)不屬於這兩種,那麼就要知道java究竟適合做什麼
『肆』 如何用JAVA寫一個知乎爬蟲
下面說明知乎爬蟲的源碼和涉及主要技術點:
(1)程序package組織
(2)模擬登錄(爬蟲主要技術點1)
要爬去需要登錄的網站數據,模擬登錄是必要可少的一步,而且往往是難點。知乎爬蟲的模擬登錄可以做一個很好的案例。要實現一個網站的模擬登錄,需要兩大步驟是:(1)對登錄的請求過程進行分析,找到登錄的關鍵請求和步驟,分析工具可以有IE自帶(快捷鍵F12)、Fiddler、HttpWatcher;(2)編寫代碼模擬登錄的過程。
(3)網頁下載(爬蟲主要技術點2)
模擬登錄後,便可下載目標網頁html了。知乎爬蟲基於HttpClient寫了一個網路連接線程池,並且封裝了常用的get和post兩種網頁下載的方法。
(4)自動獲取網頁編碼(爬蟲主要技術點3)
自動獲取網頁編碼是確保下載網頁html不出現亂碼的前提。知乎爬蟲中提供方法可以解決絕大部分亂碼下載網頁亂碼問題。
(5)網頁解析和提取(爬蟲主要技術點4)
使用Java寫爬蟲,常見的網頁解析和提取方法有兩種:利用開源Jar包Jsoup和正則。一般來說,Jsoup就可以解決問題,極少出現Jsoup不能解析和提取的情況。Jsoup強大功能,使得解析和提取異常簡單。知乎爬蟲採用的就是Jsoup。
(6)正則匹配與提取(爬蟲主要技術點5)
雖然知乎爬蟲採用Jsoup來進行網頁解析,但是仍然封裝了正則匹配與提取數據的方法,因為正則還可以做其他的事情,如在知乎爬蟲中使用正則來進行url地址的過濾和判斷。
(7)數據去重(爬蟲主要技術點6)
對於爬蟲,根據場景不同,可以有不同的去重方案。(1)少量數據,比如幾萬或者十幾萬條的情況,使用Map或Set便可;(2)中量數據,比如幾百萬或者上千萬,使用BloomFilter(著名的布隆過濾器)可以解決;(3)大量數據,上億或者幾十億,Redis可以解決。知乎爬蟲給出了BloomFilter的實現,但是採用的Redis進行去重。
(8)設計模式等Java高級編程實踐
除了以上爬蟲主要的技術點之外,知乎爬蟲的實現還涉及多種設計模式,主要有鏈模式、單例模式、組合模式等,同時還使用了Java反射。除了學習爬蟲技術,這對學習設計模式和Java反射機制也是一個不錯的案例。
4. 一些抓取結果展示
『伍』 知乎 為什麼國內用java8的少
沒有什麼合不合適的,選定那種語言寫桌面應用一般都是看OS的,java在跨平台方面其實是有優勢的。就是運行是消耗的內存較多。jdk6之後jvm的運行速度還算不錯。其實很多工具類別的軟體都是用java編寫的。Java的桌面程序並不少,其中最為知名的莫過於Eclipse,java游戲中最有名的就是「我的世界」MC了。在Linux和Mac下,Java程序的比例遠高於Windows下。只不過在windows環境下java編寫的桌面應用一般沒有那麼多酷炫效果。「Java不適合寫桌面應用」的說法有一定道理,論調的主要背景是供Windows下使用的企業桌面應用的開發。由於一些歷史和定位的原因,對於這種GUI程序的需求,Java的優勢不明顯,劣勢比較明顯。因為java必須在jvm上運行,而對於一般人來說安裝jre也是一個不小的負擔,畢竟不容版本的jre混裝容易出現問題。
『陸』 java有什麼好的gui框架知乎
1:java GUI框架類型
一種是比較老的AWT框架,一種是新的Swing框架。awt(Abstract window toolkit)的消息機制是基於分層處理的,事件沿著層次結構沿著容器的上方傳遞。自從java1.1開始,java開始採用新的事件處理模型,採用委託事件模型。
2:委託事件處理
事件源與事件處理程序分開,其實就是建立一種事件源,監聽器的模式,事件源就是產生消息的源頭,指的是Button,Checkbox ,CheckboxGroup,Choice,List,TextArea,TextField,Menu等各種各樣的空間。
監聽器就是各種各樣的介面,程序要處理相應的時間就必須實現這些介面。
事件處理的邏輯步驟,(1)事件源添加監聽器(2)實現監聽器的介面。
3:事件類型,監聽器相關介面
事件 監聽器
ActionEvent ActionListener
AdjustmentEvent AdjustmentListener
ComponentEvent ComponentListener
Containe rEvent ContainerListener
FocusEvent FocusListener
KeyEvent KeyListener
MouseEvent MouseListener
WindowEvent WindowListener
ItemEvent ItemListener
TextEvent TextListener
事件添加以及刪除函數,形式都如下所示:
addActionListener( ) //添加監聽器
removeActionListener( ) //刪除監聽器
每個事件監聽器都有一個或者幾個介面,當implements interface時必須實現所有的的監聽器的介面函數,即便函數什麼也不做,為了減少這種寫空函數的麻煩,java為監聽器中函數多於一個提供了一個適配器,適配器裡面有默認的函數,需要的時候僅僅重寫需要重寫的函數即可,如下所示:
class MyWindowListener extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
4:applet
applet是可以在HTML網頁中運行的程序,它在運行的時候會有安全限制,它可以不需要main函數,一個典型的applet程序如下所示:
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet {
public void paint(Graphics g) {
g.drawString("First applet", 10, 10);
}
}
所有public類必須繼承Applet類,Applet中主要的方法有 init(),start(),paint(),stop(),destroy(),
init 在程序片被創建時候調用;start在程序片進入web瀏覽器後調用,是在Init之後;stop是在程序片離開瀏覽器中的視野時關閉響應操作;destroy是在程序片不再被需要時銷毀程序片。
5:常用組件類型
(1)Button 按鍵
public Button();public Button(String label);
(2)TextFiled 輸入框
TextField();TextField(int columns);TextField(String text);TextField(String text, int columns)
(3)TextArea 文本輸入區域
TextArea();TextArea(int rows,int columns);TextArea(String text);
TextArea(String text,int rows,int columns);TextArea(String text,int rows,int columns,int scrollbars);
(4)Lable 標簽
Label();Label(String text);Label(String text,int alignment)
(5)Checkbox 復選框
Checkbox();Checkbox(String label);Checkbox(String label, boolean state);
Checkbox(String label, boolean state, CheckboxGroup group);
Checkbox(String label, CheckboxGroup group, boolean state);
(6)CheckboxGroup 單選按鈕
CheckboxGroup()
它把Checkbox 放在一起,如下所示:
CheckboxGroup cbg = new CheckboxGroup();
add(new Checkbox("one", cbg, true));
add(new Checkbox("two", cbg, false));
add(new Checkbox("three", cbg, false));
(7)Choice 下拉列表
Choice();
點擊會會出現一個下拉列表,可以向其中添加Item,如下程序所示:
Choice ColorChooser = new Choice();
ColorChooser.add("Green");
ColorChooser.add("Red");
ColorChooser.add("Blue");
『柒』 為什麼現在越來越多的軟體開發使用java 知乎
沒有什麼合不合適的,選定那種語言寫桌面應用一般都是看OS的,java在跨平台方面其實是有優勢的。就是運行是消耗的內存較多。jdk6之後jvm的運行速度還算不錯。其實很多工具類別的軟體都是用java編寫的。Java的桌面程序並不少,其中最為知名的莫過於Eclipse,java游戲中最有名的就是「我的世界」MC了。在Linux和Mac下,Java程序的比例遠高於Windows下。只不過在windows環境下java編寫的桌面應用一般沒有那麼多酷炫效果。
「Java不適合寫桌面應用」的說法有一定道理,論調的主要背景是供Windows下使用的企業桌面應用的開發。由於一些歷史和定位的原因,對於這種GUI程序的需求,Java的優勢不明顯,劣勢比較明顯。因為java必須在jvm上運行,而對於一般人來說安裝jre也是一個不小的負擔,畢竟不容版本的jre混裝容易出現問題。
『捌』 自學java能找到工作嗎 知乎
可以的,不過技術要好點。大專畢業,我同學去找工作大概就一次被鄙視了,問你什麼學歷,說大專,人家直接說你可以走了。。。不過現在他也是找到好工作了,java這樣的主要還是看技術,技術好,不怕找不到好工作。
『玖』 java達到什麼程度可以就業知乎
至少把javase和javaee學的扎實了,之後有SSH(Struts,Spring,Hibernate)或者SSM(SpringMVC,Spring,MyBatis)的項目經驗。。然後熟練使用一種資料庫吧。
『拾』 如何一步一步學習java 知乎
兄弟連JavaEE戰狼班:
第一階段:Java語言基礎
★ Java語言基礎
1、面向對象思維JAVASE
2、(類載入機制與反射,annotation,泛型,網路編程,多線程,IO,異常處理,常用API,面向對象,JAVA編程基礎)
3、Java8新特性
第二階段:資料庫
★ 資料庫
1、Oracle(SQL語句、SQL語句原理、SQL語句優化、表、視圖
2、序列、索引、Oracle數據字典、Oracle 資料庫PL/SQL開發
3、資料庫設計原則、 MySQL 、 JDBC
第三階段:Web基礎
★ Web基礎
1、HTML5(H5)基本文檔結構、鏈接、列表、表格、表單;
2、CSS 基礎語法、盒子模型、浮動布局、定位;
3、JavaScript語言基礎、DOM 編程、事件模型等),JQuery,AJAX框架,XML,BootStrap組件
第四階段:Java Web技術和主流框架
★ Java Web技術和主流框架
1、JSP&Servlet、struts2,hibernate4,spring4,JPA,maven
2、SpringData,SpringMVC,MyBatis,SpringSecurity,shiro,Nginx
第五階段:Linux
★ Linux
1、Linux安裝、熟悉Linux的基礎命令、vi編輯器的使用、awk和sed命令使用、用戶和組
2、文件及目錄許可權管理、使用ACL進行高級訪問控制、網路配置和軟體包安裝、啟動流程和服務管理
3、系統監控和日誌管理、進程管理和計劃任務、ssh遠程登錄、shell基礎和shell腳本。
第六階段:大數據技術(Hadoop和Spark)
★ 大數據技術(Hadoop和Spark)
1、Hadoop (Hadoop基礎和環境搭建,HDFS體系結構,MapRece;Hadoop的集群模式、HDFS聯盟,利用ZooKeeper來實現Hadoop集群的HA(高可用性)功能
2、Yarn的任務調度機制,Apache Hive,Pig數據處理,集成Hadoop和Sqoop
3、Flume以及Apache Kafka來實現數據的交換,安裝部署HBase,Storm)
4、Scala 語言(Scala環境搭建、Scala基礎語法、模式匹配、重載與構造器、Map與rece、元組、繼承、StringContext,Option Some None,Tuple;集合方法和運算,future 對象同步處理和非同步處理返回結果)
5、Spark(Spark搭建,Spark-shell 的使用,Spark-submit 提交應用, Spark的內核設計和實現,並對內核中的實現架構、運行原理進行詳細的講解;Spark生態體系中的各個組件,包括:Spark Core,Shark,Spark SQL和Spark Streaming等等)
第七階段:項目
★ 項目
1、China-UCSP 項目 SSM(Spring+SpringMVC+MyBatis)
2、用戶關系管理系統 S2SH+Maven+Nodejs+MySQL技術實戰開發
3、電子商務交易平台 S2SH+Maven+Shiro+Oracle