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