第一篇:好程序员大数据Java语言基础学习12条心得感悟(本站推荐)
好程序员大数据Java语言基础学习12条心得感悟
入学千锋好程序员大数据高端班有一个月了,首先学习的是Java语言基础阶段,以下是我在这一月中的学习经验,希望对迷茫的Java爱好者有所帮助:
第一步:首先要做好学习前的准备工作:Java语言一般用于大型的服务器程序开发,所有有必要了解如下内容:Unix开发环境Unix系统原理、Unix开发环境、Unix常用命令。熟练掌握Unix常用命令;熟练构建下的Java开发环境。
第二步:然后进入Java语言基础的学习阶段,学习任何一门语言都要打好基础,曾经学过高级程序语言(C,C++等)来说,Java语言基础有自己的特点,但是基本规律都是相通的,如:算法基础、常用数据结构、企业编程规范。掌握常见的数据结构和实用算法,培养良好的企业级编程习惯。
第三步:掌握Java语言基础后接下来就是面向对象语言的共性:Java面向对象面向对象特性:封装、继承、多态等。掌握面向对象的基本原则以及在编程实践中的意义;掌握Java面向对象编程基本实现原理。
第四步:JDK核心API语言核心包、异常处理、常用工具包、集合框架。熟练掌握JDK核心API编程技术;理解API设计原则;具备熟练的阅读API文档的能力;JavaSE核心异常处理、多线程基础、IO系统、网络编程、Swing组件、JVM性能调优(JVM内存结构剖析、GC分析及调优、JVM内存参数优化)、Java泛型、JDK新特性。熟练掌握JavaSE核心内容,特别是IO和多线程;初步具备面向对象设计和编程的能力;掌握基本的JVM优化策略。XML XML语法、XML解析(SAX、DOM)、Dom4j组件、Digester组件。熟练掌握XML语法规则;理解DOM模型;熟悉Java对XML的各种解析方式。
第五步:SQL语言SQL语句基础和提高、SQL语句调优。熟练的掌握SQL语句;掌握一定的数据库查询技巧及SQL语句优化技巧。Oracle数据库开发Oracle体系结构及系统管理、Oracle数据库高级编程、数据库设计基础。掌握Oracle体系结构及核心编程技术
第六步:连接数据库:JDBC JDBC核心API(Connection、Statement、ResultSet)、JDBC优化技术(缓存技术、批处理技术、连接池技术)。理解JDBC作为规范的设计原则;熟练掌握JDBC API;具备使用JDBC对数据库进行高效访问的能力。
第七步:软件工程基础软件过程和软件活动;需求设计、概要设计、详细设计基本原则和文档规范;配置管理的基本概念和必要性;CVS基本操作;Ant简介理解软件过程的普遍概念和基本的软件活动;理解迭代的意义;掌握Ant、CVS等常用配置管理及部署工具。
第八步:OOAD及设计模式面向对象基本设计原则、工厂模式、策略模式、适配器模式、代理模式等、门面模式。理解面向对象设计的一般原则;理解重用的意义;掌握常见的设计模式。
第九步:HTML/CSS HTML基本文档结构、掌握CSS基础语法、关于HTML文档块、链接、列表、表格、表单等。掌握HTML基本原理;掌握CSS各种选择器及常见样式设置;熟练使用HTML常用元素。
JavaScript核心JavaScript语言基础(数据类型、函数、对象、闭包)、Java DOM编程、事件模型、JavaScript面向对象编程。深入理解JavaScript语言原理;熟练的使用JavaScript对HTMLDOM进行编程;熟练掌握JavaScript对象对象封装技巧,为后续的JavaScript学习打下坚实的基础。
Servlet/JSP Servlet生命周期及Servlet服务器、Tomcat部署配置、JSP语法、自定义标记、JSTL和EL表达式、JSP新特性、Java Web设计模式。透彻理解Servlet核心原理;熟练掌握Servlet API;透彻理解JSP引擎工作原理;透彻理解标记库原理;熟悉常见的Java Web设计模式;为后续的Java Web开发打下坚实的理论基础。
第十步:Ajax Ajax基础、XHR对象、Ajax设计模式、JSON技术掌握Ajax的基本通信原理;掌握基于XML和JSON的Ajax数据规则。
第十一步:JavaScript框架JQuery、JQuery插件、DWR。掌握JQuery核心API;了解JQuery基本设计原则;了解多种JQuery插件;掌握DWR的基本原理及应用技巧。
第十二步:ssh三大框架的学习,这是企业实际应用的框架模型:
1.Struts 2.1.6 Struts2核心控制流程、Ognl、Action、Interceptor、,Result、FreeMarker、Struts2标记库、Struts2扩展、Struts2应用技巧(输入验证、消息国际化、文件上传和下载、防止重复提交等)。熟练掌握Struts2核心要件,特别是Interceptor和Result;掌握基于模板技术的Struts2 UI组件;掌握基于Ognl的数据共享方式、掌握Struts2各种定制及扩展方式;熟练掌握基于Struts2的Web开发技巧。
2.Hibernate 3.2.1 ORM概念、Hibernate核心API、Hibernate实体映射技术、Hibernate关系映射技巧、HQL查询、OSCache及Hibernate缓存技术。重点掌握Hibernate多种关联映射技巧及其实用背景,做到在合适的时候使用合适的关联方式;掌握多种Hibernate查询技巧及优化技术。
3.Spring 2.5 Spring Ioc基础、Ioc注入技巧、对象高级装配(自动装配、模板装配、组件扫描特性、FactoryBean、对象生命周期)、Spring AOP原理、AspectJ、Spring JDBC支持、Spring事务及安全管理;Spring整合Hibernate、Spring整合Struts、Spring MVC简介。深入理解Ioc和AOP的基本原理和实现方式;熟练掌握SpringIoc及AOP实现方式;熟练掌握Spring事务管理;熟练掌握Spring与其他组件的整合技术。
Java语言基础阶段作为大数据基础,学习完以上内容你会对Java开发有一个新的认识,希望我的这些心得体会会对想学习Java的同学有所帮助。如有疑问,欢迎加入大数据交流之家:608538939,我们可以共同讨论、一起进步。
第二篇:好程序员学习笔记-Java网络
1、网络基础知识
2、JAVA网络编程网络与分布式集群系统的区别:每个节点都是一台计算机,而不是各种计算机内部的功能设备。Ip:具有全球唯一性,相对于internet,IP为逻辑地址。端口(port):一台PC中可以有65536个端口,进程通过端口交换数据。连线的时候需要输入IP也需要输入端口信息。计算机通信实际上的主机之间的进程通信,进程的通信就需要在端口进行联系。192.168.0.23:21协议:为了进行网络中的数据交换(通信)而建立的规则、标准或约定。不同层的协议是不同的。网络层:寻址、路由(指如何到达地址的过程)传输层:端口连接TCP模型:应用层/传输层/网络层/网络接口端口是一种抽象的软件结构,与协议相关:TCP23端口和UDT23端口为两个不同的概念。端口应该用1024以上的端口,以下的端口都已经设定功能。套接字(socket)的引入:
Ip+Port=Socket(这是个对象的概念。)Socket为传输层概念,而JSP是对应用层编程。例: java.net.*;(Server端定义顺序)ServerSocket(intport)Socket.accept();//阻塞方法,当客户端发出请求是就恢复 如果客户端收到请求: 则Socket SI=ss.accept();注意客户端和服务器的Socket为两个不同的socket。Socket的两个方法:getInputStream():客户端用getOutputStream()服务器端用使用完毕后切记Socket.close(),两个Socket都关,而且不用关内部的流。在client
端,Socket s=new Socket(“127.0.0.1”,8000);127.0.0.1为一个默认本机的地址。
练习:
1、客户端向服务器发出一个字符串,服务器转换成大写传回客户端。大写的函数:String.toUpperCase()
2、服务器告诉客户端:“自开机以来你是第n 个用户”。12.12UDP编程:DatagramSocket(邮递员):对应数据报的Socket概念,不需要创建两个socket,不可使用输入输出流。DatagramPacket(信件):数据包,是UDP下进行传输数据的单位,数据存放在字节数组中。UDP也需要现有Server端,然后再有Client端。两端都是DatagramPacket(相当于电话的概念),需要NEW两个DatagramPacket。InetAddress:网址这种信息传输方式相当于传真,信息打包,在接受端准备纸。模式:发送端:Server:DatagramPacketinDataPacket=new DatagramPacket((msg,msg.length);InetAdress.getByName(ip),port);接收端:clientAddress=inDataPack.getAddress();//取得地址 clientPort=inDataPack.getPort();//
datagramSocket.send;//Server
datagramSocket.accept;//Client URL:
在应用层的编程 注意比较:
http://Localhost:8080/directory//查找网络服务器的目录 file://directory//查找本地的文件系统 java的开发主要以http为基础。反射:主要用于工具和框架的开发。反射是对取得端口号
于类的再抽象;通过字符串来抽象类。JAVA类的运行:classLoader:加载到虚拟机(vm)Vm中只能存储对象(动态运行时的概念),.class文件加载到VM上就成为一个对象,同时初始静态成员及静态代码(只执行一次)。
Lang包下有一个类为Class:在反射中使用。此类中的每个对象为VM中的类对象,每个类都对应类类的一个对象(class.class)。例:对于一个Object类,用getClass()得到其类的对象,获得类的对象就相当于获得类的信息,可以调用其下的所有方法,包括类的私有方法。注意:在反射中没有简单数据类型,所有的编译时类型都是对象。反射把编译时应该解决的问题留到了运行时。
第三篇:好程序员大数据培训心得感悟 敬谢恩师大数据赋能之路
好程序员大数据培训心得感悟 敬谢恩师大数据赋能之路
时光飞逝,日月如梭,转眼间我踏进千锋这个大家庭度过五个多月的奋斗时光。从最开始的编程入门---Java学习阶段(这是非常重要的阶段,只有打下扎实的基础才能在以后的阶段里不落后),到后来的大数据核心课程---hadoop学习阶段(期间不断地接触新技术、新概念、新知识,一个又一个的知识点就呼啸而来,需要坚韧的毅力坚持下来),再到后来的spark学习阶段(这里的感受同hadoop阶段是一样一样的),大数据学习的最后阶段便是在前面学习的基础上,通过项目来进行知识点的巩固和理解,以及对以后工作的流程和业务有一定的了解。在这五个多月的时光里,有汗水、有努力、有辛劳;有就业老师、技术老师、班主任对我孜孜不倦的教诲和同学对我的帮助,这里对大家说一句谢谢!
关于大数据培训,我是零基础来学习的,之前也只是在网上或听朋友们聊起过,自己开始根本不知道它是什么样子。起初我还是有些担心,因为没有“底子”怕跟不上高端班学习的进度,但是周围的老师、同学都很热心,也慢慢的和他们打成一片。老师讲课内容很细致,从简单的赋值、运算,到进程、线程的运用,老师每天辛苦传授我们专业知识,为我们解答各种学习上的‘疑难杂症’。日积月累,我渐渐的跟上大家的进度。而且,一旦上课内容消化不了,老师就会讲第二遍甚至第三遍,如果还不懂,课后还能私下请教老师,老师都会细致的讲解问题。
子曰“:学而不思则罔,思尔不学则殆”,老师将技术传授于我们,我们要好好结合运用,多敲代码多思考才能理解这个程序运行的思路。有了思路代码就能够很快的写出。
在这五个多月里,我收获许多,从开始的陌生人到现在的同学,从原来的不习惯到现在的适应,从刚开始的懵懂无措到现在自己能够独立的完成一些作业和代码,有很多成就感和满足感。
在好程序员的大数据培训生活虽然很累(每晚十点左右回去),但每天都能学到新东西,每天都过得很充实。使我的知识面又得到了拓展,也许今后的坎坷和困难绝对不会少,但我早已做好准备!也愿大家都前程似锦,加油冲冲冲!
第四篇:UNIX、Oracle、Core Java 语言基础实训心得
一,工作内容(培训内容),WOSS: Wide-Brand Operation Support System 宽带运营支撑系统
负责多个用户通过一台NAS(Net Access Server 接入服务器)进行宽带接入记费的系统,支持ADSL拨号,支持Radius协议,支持包月,小时,后台采用J2EE实现,功能强大,可移植于各种平台。2,UNIX基本命令
使用unix命令
3,Oracle数据库SQL命令
主要负责数据库和java的链接(JDBC),保存数据,删除数据,创建表等。
4,Core Java 语言
学习Java的基本概念,掌握Sting,Io,Socket等相关知识。
二,项目收获
现在的社会日新月异,高科技的发展,需要老师掌握一定的计算机知识,利用网上的教育资源为教学服务,促进学生的发展。我积极参加学校的计算机培训。虽然感觉时间有点紧张,但很充实,学到了很多知识,可以说我很好的完成这次学习任务。对于计算机我可以说既熟悉又陌生,虽说经常使用,但其中好多东西都还不懂,但我对计算机特别感兴趣,经过老师的讲解,使我对网络世界有了更进一步的了解。可以说让我大饱眼福,大开眼界。学习中,我学会了如何掌握更好的Java相关知识,数据库,UNIX命令的等,学习是辛苦的,但我认真的去
把的所有内容学好,认真完成每一天的学习任务。
学校为提高教师的自身水平提供了良好的平台,为教师专业发展提供了机房。不管是现在还是将来每个教育者应不断地加强学习,不断地给自己“充电”,才能不断的开拓进取,勇于创新,才不至于被社会淘汰。经过20天的学习计算机的过程,我感到了学习的快乐,也尝到了成长的快乐,这就是学习并快乐着吧!2.1 在学习Unix时我学会了很多命令操作
比如:
1.telnet 192.168.1.5
登陆Unix/Linux系统
login(username)
输入用户名
password(user’s password)输入密码
logout or exit
退出
2.clear 清屏命令
就是CLS清屏 3.pwd 显示当前所在路径
4.cd
改变目录: Accept both absolute 绝对路径 and relative pathnames相对路径
cd [directory_name] cd /home/test1/dir2 cd dir4/flowers cd 相同于cd~ cd../..5.ls
Displaying a Listing of Files and Directories
想当于List也相当于Dos下的Dir
ls –a
列出所有信息
ls-F
列出类型 6.ls –l
列出详细信息
如: d rwx r-x r-x 4 user nobody 1024 Feb 22 09:20.fm
d: 文件类型
rwx: 拥有者
r-x:同组者
r-x:其它人
4:链接号
user:拥有者
nobody:组名
1024 :大小
Feb 22 09:20:最后一次修改时间
fm:文件名(蓝色的为目录)7. r
读权限
w
写权限,对于目录来说,可生成文件与子目录或删除文件与子目录
x
执行权限,对目录来说,可查找该目录下内容
没有权限
如:rw-r--r--8.chmod 修改权限
chmod 555 dante chmod 644 dante
chmod 755 dante 9.create new,empty files or update access and modification times touch filename(s)10.create directories mkdir [-p] directory_name
创建目录
$mkdir reports/weekly $mkdir dir1 dir2 dir3 $mkdir /games $mkdir –p practice/dir1/admin 11.copy files
拷贝
cp [i] source_file destination_file
加i表示。若有同名的文件就提示一下。不加就不提示。直接覆盖
cp[i] source_file(s)destination_directory $cp nuts flavors $cp nuts flavors dir2 $cp-i beans nuts 12.copy a directory and its contents to another directory cp –r[i] source_directory(s)destination_directory $cp –r dir3 dir4 $cp –r dir1 dir4 /tmp 13.move or rename files and directories
移动
相当于重命名 $mv dir5 dir614.remove files
删除
相当于delete
rm [-i] filename(s)
加i删除时提示是不否确定删除 15.Remove Directories
rmdir directory_name(s)
删除目录 16.man
显示帮助信息
man –k keyword
显示关键字
19.cat filename(s)
串联显示把多个文件串到一起再输出
Cat 文件1> 文件2 就是把F1写到F2再输出F2 信息被F1覆盖20.more filename(s)
把文件内容显示到显示屏
More和cat效果相似
21.head [-n] filename(s)&tail[-n] filename(s)查看头尾文件 2.2在SQL学习过程中,收获也颇丰
登录sqlplus的方式: 1 sqlplus 回车;username: password: 2 sqlplus baocg/baocg 3 sqlplus '/as sysdba' select * from tab;SELECT * FROM TAB;显示所有表
SQL命令: 可以写在一行或者多行 中间加空格或者Tab 3 大小写不敏感 4 不要忘记分号
select * from s_dept;“*”代表所有的列
显示特殊列
select dept_id,last_name,manager_id from s_emp;
计算功能
select last_name, salary*12, commission_pct from s_emp;优先级
select last_name, salary*12 + 100, commission_pct from s_emp;
select last_name,(salary+100)*12, commission_pct
from s_emp;
select last_name, salary*12 *(1+commission_pct/100)annualSalary from s_emp;
连接字符串
select first_name||' '||last_name “Employees” from s_emp;
连接字符串和别名
select first_name||' '||last_name||', '||title “My Employees” from s_emp;
处理NULL值
NVL(commission_pct, 0)select last_name,salary*12
*(1+NVL(commission_pct, annualSalary from s_emp;
0)/100)
distinct的作用
select name from s_dept;
select distinct name from s_dept;
select dept_id, title from s_emp;
select distinct dept_id, title from s_emp;
显示表的结构 desc s_dept;
char(10);name=“scott” varchar2(10);name=“scott”
c[hange] /old/new 修改字符 l[ist]
显示上一个命令
/
执行上一个命令
a[ppend]
追加 i[nput] text
加字符
del n
删除行
cl[ear] buff[er]
清理缓存
sqlplus文件命令
save filename----> 把sql保存到文件 get filename----> 获取文件的内容 start filename----> 执行文件内容 @ filename
----> 执行文件内容 edit filename----> 编辑文件内容
spool filename----> 把显示的内容存到文件里最后别忘记spool off
column 命令
COLUMN last_name HEADING 'Employee|Name' FORMAT A15
select last_name from s_emp;
COLUMN salary JUSTIFY LEFT FORMAT $99,990.00
select salary from s_emp;
查看定义的列 column last_name
取消定义的列
column last_name clear
order by 排序 asc
默认升序 desc
降序
select last_name, dept_id, start_date from s_emp order by last_name(desc);
select last_name, dept_id, start_date from s_emp order by 2(dept_id);
用序号
第五篇:【好程序员学习笔记】C语言 编译预处理命令
文件包含:
把指定的文件插入到预处理命令行所在的位置并取代该命令行,即把指定的文件和当前的源程序文件连接成一个源文件。#include<文件名>
在文件包含目录中去查找指定的文件,并将该文件添加到源文件中。一个被包含的文件中可以含有文件包含命令来包含另一个文件。#include“文件名”
命令中文件名的位置是当前源文件的位置,若在当前目录中未找到该文件,则再到“包含目录”中去查找。
宏
用一个标识符表示一个字符串,称为宏,被定义为宏的标识符称为宏名。在编译预处理时对程序中所有出现的宏名用宏定义中的字符串去代换,这就是宏替换。它是由系统编译程序时自动完成的。
无参宏定义
#define 标识符 字符串 如
#define PI 3.14 使用宏时要注意:
(1)宏定义是用宏名来表示一个字符串,在宏展开时用字符串取代宏名。
2)宏定义不是变量定义或语句,在行末不能加分号,如果加上分号则分号也成为字符串的一部分。
(3)宏定义可以出现在程序的任何地方,其作用域是宏定义命令所在位置开始到源程序结束。如果要终止其作用域可使用#undef命令。
(4)宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名。在宏展开时将逐层替换。
(5)#define PI 3.1415926 #define AREA PI*y*y 有参宏定义
#define 宏名(形参表)字符串
对带参数的宏,在调用中不仅要进行宏展开,而且还要用实参去替换形参。带参宏调用的语法格式如下: 宏名(实参表); #define M(x)x+1 K=M(3);K=3+1 定义有参宏时要注意以下几点:
(1)有参宏定义中,宏名和形参表之间不能有空格出现。
(2)在函数中,调用时要把实参的值赋给形参,进行“值传递”。而在带参宏调用中,只是符号替换,不存在值传递问题。
(3)宏定义中的形参只能是标识符,而宏调用中的实参可以是表达式。
字符串内的形参通常用括号括起来以避免出错。
在使用宏时不仅要将形式参数用括号括起来,还应将其整体用括号括起来。#define S(y)((y)*(y))条件编译
条件编译可以按不同的条件去编译不同的程序段。1#ifdef #ifdef 标识符 程序段1 #else 程序段2 #endif 功能:如果标识符已被#define定义过,则对程序段1进行编译,否则对程序段2进行编译。格式中的#else部分可以没有,即: #ifdef 标识符
程序段 #endif
2、#ifndef 语法格式如下: #ifndef 标识符 程序段1
#else 程序段2 #endif 功能与ifdef形式的功能正好相反。
3、#if 常量表达式 #if 常量表达式 程序段1 #else 程序段2 #endif 功能:如果常量表达式的值为真(非0),则对程序段1进行编译,否则对程序段2进行编译,因此可以使程序在不同条件下,完成不同的功能。
上面介绍的条件编译实现的逻辑也可以用条件语句来实现,但是用条件语句将会对整个源程序进行编译,生成的目标代码程序较长,运行时间也较长,采用条件编译则根据条件只编译其中的程序段1或程序段2,生成的目标程序较短。