java入门要注意什么
学习java就像是一个种花的过程,不断地为其施肥浇水,它才会茁壮成长。 而我们学习java,就要不断的充实自己、提升自己,才能获得更多机会。很多开始学习java编程的小白,经常就会被概念、定义什么的搞糊涂。当分类 、对象、接口、构造函数等等各种专业名词出现的时候,你一定是脑子里好像一片空白,根本就搞不懂这些字眼的意思和关系,而且,这种情况下,很 容易导致你丧失自信心,开始逃避、拒绝,这些小白经常遇到的情况在我刚接触java的时候也遇见了,但是好在我足够幸运,遇见了诚筑说。我现在已 经是公司的项目经理了,今天,我为大家来总结了一些经验和建议,希望能够帮助到大家。
一点:熟练基本的j2seAPI
除去java语言本身的语法之外呢,要懂得并且熟练j2seAPI的API也是非常有 必要的,在这里,就建议大家首先去掌握字符串的处理、异常的处理、容器、输入输出、线程等,这些相对来说较为重要的。还有就是API的内容是非 常庞大的,关于API,一定要懂得查询API的文件说明,在了解了其作用用途或者目的才能够进行相对于的程序。
二点:稳固java的语法基础
学习java一定要学会使用java的程序语言,用来编写程序,但是学习程序语 言就要熟悉语法是怎么使用的。程序语言其实也是一种语言,不过跟人类的语言不同,这种语言是要和计算机沟通交流,那怎么做才能熟悉这种语言呢 ,我给出的建议是多看别人写的程序,了解人家是怎么用java来解决问题的。然后再找类似的程序去练习了,这样就能够从实际操作中检验自己是否真 的知道该怎么去解决问题了。
三点:加入贴吧论坛多参与讨论
根据我当时的经验,在大家学习的过程中,如果有人可以参与话题,共同讨 论的话,会加快你学习的速度。所以大家可以和我一样,找一个技术讨论的地方,贴吧啊,论坛啊都可以,在这里进行讨论,毕竟大家有着共同的目标 和理想,有着共同的话题可聊,这样的话,又大大节省了学习的时间。
学完基本的java语法呢,现在就该用java来进行实际的编程了,假如你需要 编写窗口程序,那就学Swing窗口设计;假如你要编写数据库什么的,那就学JDBC等等。
大数据核心知识
大数据核心知识
Hadoop基础
Hadoop1介绍
hadoop1架构
hadoop2架构(对比hadoop1)
hadoop2环境搭建
HDFS操作
yarn操作
Hadoop应用
Hive数据仓库
zookeeper系统服务
HBase非关系型数据库
Sqoop数据库抽取工具
Flume日志抽取工具
Spark基础
环境搭建
Spark平台介绍
RDD弹性分布式数据集
Scala编程
Spark应用
Spark-SQL组件
DataFrame组件
课程优势
1.真实的企业项目;
2.目前企业中应用广泛的技术路线;
3.部分Spark源码剖析,从源码层面提升问题解决能力。
4.从hadoop1到hadoop2机制原理详细解说;
5.生产环境hadoop集群调优经验;
6.企业真实项目实战;
本阶段学习目标
1.了解hadoop机制原理 ;
2.了解hadoop集群搭建过程;
3.了解Hdfs API使用以及mr编程模型;
4.了解hive、hbase、sqoop、flume等组件的使用方法;
5.Spark平台的优势以及Spark集群的搭建过程;
6.Scala程序设计基础;
7.Spark-SQL和DataFrame API详解。
本阶段学习效果
1.了解hadoop集群的搭建过程;
2.能够**mr和hive来实现简单的数据清洗的业务需求;
3.能够了解数据的抽取,转换,清洗,建模,入库过程;
4.掌握Spark集群的搭建;
5.掌握函数式编程思想,能够根据业务需求编写高质量的Scala程序;
6.掌握大规模离线数据的计算、分析能力。
Java网络编程由浅入深一
>
本文介绍网络相关理论和简单入门的java网络编程例子
这篇文章主要介绍计算机网络的一个整体架构和每一层的作用。
计算机网络的概念 OSI参考模型 TCP/ip参考模型 IP协议 TCP协议和端口 Java网络编程入门程序计算机网络的概念
网络,就是不同节点之间**连线互联起来的一个事物。以此类推,计算机网络,就是将不同地理位置的计算机**通信线路连接起来的一个具有强大功能的网络系统。在这个网络中每台电脑就是一个节点。
OSI参考模型
OSI(Open System Interconnection)是由ISO组织研究的一套网络体系结构。这名字起的好 各层的名称和作用,当做了解:
名称 | 功能 |
---|---|
物理层 | 不要理解错了,这一层不包含什么网线、电缆的物理介质。这里只是规定网线和电缆的接口类型,信号电压等。使用bit传输 |
数据链路层 | 负责两个相邻节点间的路线,以帧为单位传输。典型设备交换机(Switch) |
网络层 | 两台计算机传输数据可能会经过很多数据链路,网络层的作用就是选择**优的路线。典型设备就是路由器 |
传输层 | 提供两个端系统的会话的建立、维护和取消传输连接的功能。使用报文传输 |
会话层 | 管理进程间的会话过程,即建立、管理、终止进程间的会话。使用报文传输 |
表示层 | 对数据的加解密、解压缩和格式转换等。 |
应用层 | 这层就是和用户的具体应用交互。例如:收发E-mail等。 |
TCP/IP参考模型
因为OSI网络结构分层太多过于复杂,所以TCP/IP协议横空出世。TCP/IP协议同样借助了OSI的分层思想,但是只是分为四层:
名称 | 功能 |
---|---|
主机网络层 | 为上层提供一个访问接口 |
网络互联层 | 把IP数据包发送到目标主机。这一层使用的是IP协议,IP协议规定了数据包的格式,并且规定了为数据包寻找路由的流程。 |
传输层 | 使源主机和目标主机的进程可以进行会话。这一层定义了两种协议TCP和UDP协议。 |
应用层 | TCP/IP模型将OSI参考模型中的会话层和表现层功能合并到应用层。 |
基于TCP协议的应用主要有以下几种:
? FTP:文件传输协议,允许在网络上传输文件。 ? TELNET:虚拟终端协议,允许从主机A登入远程主机B。 ? HTTP:超文本传输协议,允许网络是传输超文本。 ? HTTPS:安全超文本传输协议。 ? POP3:允许用户访问和操作运程服务器上的邮件和邮件夹。 ? IMAP4:消息访问协议版本4,允许用户访问和操作运程服务器上的邮件和邮件夹。 ? SMTP:发送邮件的协议。
基于UDP协议的应用层协议:
? SNMP:简单网络管理协议,为管理本地和远程的网络设备提供了一个标准化途径,是分布式环境中的集中化管理协议。 ? DNS:域名系统协议,把主机的域名转换为对应的IP地址。
IP协议
IP网络(采用IP协议的网络)中每一台主机都有唯一的IP地址,IP地址标识网络中的每个主机。IP地址是一个32位的二进制数序列。例如:192.168.3.4
。IP地址与子网掩码进行与运算得到的是网络地址。如果子网掩码为255.255.255.0
那网络地址就是:192.168.3.0
发送数据包的过程
IP是面向包的协议,即数据被分成若干小数据包,然后分别传输它们。IP网络上的主机只能直接向本地网上的其他主机(也就是具有相通IP网址的主机)发送数据包。主机实际上具有两个不同性质的真实地址。主机A向同一个网络上的另一个主机B发包时,会**地址解析协议(ARP,Address Resolution PRotocol)获得对法的物理地址,然后把包给对方。ARP协议的运行机制为,主机A在网络上广播一个ARP消息:”要找地址为192.166.3.5的主机”,具有这个IP地址的主机B就会作响应,把自身的物理地址告诉A。
当主机A向另外一个网络的主机B发送包时: 主机A利用ARP协议找到本地网络上的路由器的物理地址,把包转给路由。路由器按照如下步骤处理数据包:
如果数据包的生命周期已到,则数据包被抛弃。 搜索路由表,优先搜索路由表中的主机,如果找到具有目标IP地址的主机,则将数据包发给该主机。 如果匹配主机失败,则继续搜索路由表,匹配子网的路由表,如果找到匹配的路由表,则将数据包转发给该路由器。 如果匹配同子网的路由器失败,则继续搜索路由表,匹配同网络的路由器,如果找到匹配的路由器,则将数据包转发给该路由器。 如果以上匹配都失败,就搜索默认路由,如果默认路由存在,则按照默认路由发送数据包,否则丢弃数据包。 流程图如下:域名
IP是一串数字没有任何意义。域名就是与IP对应的有意义的一串字符或数字。例如:www.google.com
域名和IP的对应需要一个域名解析系统来实现将域名转换成IP。DNS服务器就是就可以解决这个问题。
URL(统一资源定位符)
URL(Uniform Resource Location)是专门标识网络上资源位置而设置的一种编址方式。URL一般由3个部分组成:
应用层协议://主机IP地址或域名/资源所在路径/资源名
例如:http://blog.csdn.net/facekbook/article/details/54962975
其中http
指超文本传输协议,blog.csdn.net
是Web服务器的域名,/article/details/
是网页所在路径,54962975
这个才是相应的网页文件。
TCP协议和端口
IP协议在发送数据时,在数据传输过程中会出现各种问题。导致包丢失或包的顺序不对。TCP协议使两台主机上的进程顺利通信,不必担心包丢失或包顺序不对。TCP跟踪包顺序,如果包顺序被搞乱时按照正确的顺序进行重新组合。如果包丢失,则TCP会请求源主机重发包。
端口
TCP协议使两台主机上的进程顺利通信,但是主机不止一个进程。TCP就采取端口来区分进程。端口不是物理设备,而是用于标识进程的逻辑地址。计算机的端口范围是0到65535,其中0到1023的端口一般固定分配给一些服务。具体如下:
服务 | 端口 | 协议 |
---|---|---|
文件传输服务 | 21 | FTP |
远程登录服务 | 23 | TELENET |
邮件传输服务 | 25 | SMTP |
万维网超文本传输服务 | 80 | HTTP |
访问邮件远程邮件服务 | 110 | POP3 |
互联网消息存取服务 | 143 | IMAP4 |
安全的超文本传输服务 | 443 | HTTPS |
安全的远程登录服务 | 992 | TELNETS |
安全互联网消息存取服务 | 993 | IMAPS |
Java网络编程入门程序
Java网络程序都建立在TCP/IP协议基础上,在应用层实现。传输层向应用层提供了套接字Socket接口,Socket封装了下层的数据传细节,应用层的程序**Socket来建立与远程主机的连接,以及数据传输,如下图所示:
在Java中,有3种套接字类:java.net.Socket
、java.net.ServerSocket
和 java.net.DatagramSocket
。其中Socket
和 ServerSocket
建立在TCP协议上,DatagramSocket
类建立在UDP协议基础上。我们创建EchoServer和EchoClient两个类,我们**ServerSocket
和Socket
来编写。
创建EchoServer类
在服务端**一直监听端口,来接收客户程序的连接请求。在服务器程序中,先创建一个ServerSocket
对象,在构造方法中指定监听的端口:
ServerSocket
构造器负责在操作系统中将当前进程注册为服务进程。服务器程序调用ServerSocket
的accept()
方法来监听端口,等待客户端的连接,如果接收到连接,则accept()
方法返回一个Socket
对象,这个Socket
对象与客户端的Socket
对象形成了一条通信线路:
Socket提供了getInputStream()方法和getOutputStream()方法,分别返回输入流InputStream对象和输出流OutputStream对象。程序只需向输出流写入东西,就能向对方发送数据;只需从输入流读取数据,就能接收到数据。如下图: EchoServer
类代码如下:
EchoServer
类的**主要的方法就是service()
方法,它不断登录客户的连接请求。当serverSocket.accept()
返回一个Socket
对象时,表示与一个客户端建立了连接。
创建EchoClient
类
在EchoClient程序中,为了与EchoClient通信,需要先创建一个Socket对象:
String host="localhost"; int port = 8080; new Socket(host, port);
host表示Server进程所在服务器的地址,port表示Server进程监听的端口。当参数host为’localhost’时,表示服务端和客户端在同一台机器上。下面是EchoClient
类的源码:
在EchoClient类中**重要的是talk()方法,该方法不断读取用户从控制台输入的字符串,然后将它发送到EchoServer,在把EchoServer返回的数据打印在控制台。如果输入’bye’字符串,就会结束与EchoServer的通信,调用socket.close()方法端口连接。 具体运行如下图,一个是服务端一个是客户端的控制台:
总结
简单介绍了一下网络的理论知识和TCP/IP协议。并使用Java实现了一个网络通信程序。
相关推荐: