黄 凯高级讲师
多年移动互联网开发经验,精通Android与iOS开发,对JavaEE等后台技术也
有所研究。尤其精通Android平台的开发,对Android平台下的性能优化有极其丰富的经验。 曾就职于酷狗音乐担任高级Android软件工程师与Team
Leader一职,带领超过20人的开发团队,有丰富的开发与管理经验。参与开发了<酷狗音乐>,<繁星网>,<中国电信移动办公>,
<智慧天河>,<翼健康>,<创饷无限>,<外修管家>等20多款互联网热门应用。其不但开发经验丰富,教学幽默风趣,而且对
学生要求严格,坚持授人与鱼不如授人与渔的理念,注重培养学生的解决问题与自我思考的能力。
Java开发的应该如何掌握上述相关技术?
一:首先,有这样的一种情况很常见,对于想自学Java开发的人来说,他们
大多数都是非常盲目的,不知道自己改如何入手,很多人在网上找一些视频,然后疯狂的过视频,很快就把一块内容都学完,他们理解的学完了就是视
频看完了,但是让他们动手去做东西却做不出来,而我的理解学完了就是自己能写出东西,所以对于初学者来说一定不能盲目,要有自己的规划,不然
就是浪费时间白忙活。
二:既然是学习Java开发专业技术,我个人的建议是,一定要有一个能指导
你的人,不能都靠自己闭门造车,这样的行为并不聪明,结识一位这方面的人才,时不时去问问人家问题,不然你可能会发现一个小问题能困扰你一天
,**后还不知道是什么原因。
三:学习Java开发技术,不能跟学数学语文一样对待,比较刚接触代码是不
容易记住的,所以要掌握上述的技术,你还要知道学习Java开发技术有哪些“坑”。对于学习方法这块是尤为重要的,怎么学才能让你学完了能记住之
前学的那些,不至于学完了就忘,这个问题值得你学习之前去思考的。
四:根据我多年的学习情况来看,你平时一定要养成好的学习习惯,就说我
自己吧!我就喜欢把自己曾经遇到的问题整理在电脑的日记本上,然后我会搜集一下博客相关的Java技术文章,一些我认为比较有用的网站,以后都能
用的上,这是我个人的学习习惯,相信我,如果你想走的更远,一定要养成习惯。
**后给大家一些详细的学习安排路线:
Java基础:Java基础语法、数组、类与对象、继承与多态、异常、范型、集
合、流与文件、反射、枚举、自动装箱和注解。
数据库:mysql、oracle
Javaweb:HTML与CSS网页开发基础、Java脚本语言、搭建开发环境、JSP基
本语法、JSP内置对象、JavaBean技术、Servlet技术、Ajax技术
框架:Struts2、Hibernate、Spring、SpringMVC、mybatis
《C Primer》读书笔记(一)开始
>
首先,了解一个我们需要尝试的程序(书店程序),如下:
书店保存每条销售记录的档案,包括3个数据项:ISBN书号、售出册数、售出单价
需要能够查询每本书的销量,销售额和平均售价
我认为,主要需要实现的是:
- 检测相同ISBN书号
- 可重复录入销售记录的输入功能
书中提出,虽然没有编写程序,但是已经可以确定它必须:
- 定义变量
- 进行输入输出
- 使用数据结构保存数据
- 检测两条记录是否有相同的ISBN书号
- 包含一个循环来处理销售档案中的每条记录
接下来,介绍用C 来解决这些子问题
1.1 编写一个简单的C 程序
1.一个函数的定义包含4个部分:返回类型、函数名、形参列表、函数体
2.重要概念:类型(类型不仅定义了数据元素的内容,还定义了这类数据能进行的运算)
编译、运行程序
1.IDE:集成开发环境(Integrated Developed Environment)
2.程序文件成为源文件(source file),C 文件的后缀名常见为:cc、cxx、cpp、cp、c
3.从命令行==运行编译器==
在windows或者UNIX系统外壳程序窗口中,用
$ CC PRg1.cc
CC编译器程序的名字,$是系统提示符
4.从命令行中==运行执行文件==
在windows中,有两种方法
$ prog1 //忽略其扩展名.exe
$ .\prog1 //一些系统中,必须择定文件位置,当前目录为./
而在==UNIX系统==中,必须使用==全文件名==
5.访问==main返回值==
在windows和UNIX系统中,都可以用==echo==命令获得返回值,在windows系统中
$ echo %ERROREVEL%
运行GNU或微软编译器(常用编译器:GNU、Visual Studio)
其中GNU编译器,可以如下:
$ g -o prog1 prog1.cc
g 是运行命令
-o prog1 是编译器参数(指定生成的可执行文件名为prog1)
不指定此参数则可执行文件:a.exe或者a.out
另外,Visual Studio编译器命令可以如下:
C:\Users\me\programs> c1 /Ehsc prog1.cc
C:\Users\me\programs>是系统提示符
c1命令:调用编译器
/Ehsc是编译器选项,用来打开标准异常处理
练习
1.查阅编译器文档,确定文件命名规则,编译并运行一个程序
参考CSDN博客 Windows下使用GNU编译器
2.改写程序返回值为-1,通常这是程序错误的返回,观察你的系统如何处理错误标识
1.2 初识输入输出
1.标准输入输出对象
- 标准输入:cin
- 标准输出:cout
- 标准错误:cerr
- 输出运行程序时的一般性信息:clog
2.一个使用IO库的程序
#include <iostream>
int main()
{
std::cout<<"Enter two numbers:"<<std::endl;
int v1=0,v2=1;
std::cin>>v1>>v2;
std::cout<<"The sum of"<<v1<<"and"<<v2<<"is"<<v1 v2<<std::endl;
return 0;
}
(1) #include指令必须在所有函数前面
(2) 输出运算符(<<)
- 接受两个对象:左侧的运算对象必须是一个ostream对象,右侧的运算对象是要打印的值;
(3) 操纵符(endl)
- 写入endl的效果是:结束当前行,并将与设备关联的缓冲(buffer)区中的内容刷到设备中
- 缓冲刷新操作:保证到目前为止程序所产生的所有输出都真正写入输出流中,而不是仅停留在内存中等待写入流
程序员在调试时添加打印语句,应该一直保证刷新流,否则程序崩溃时,输出可能还留在缓冲区,而推断崩溃位置错误
(4)使用标准库中的名字
- 前缀std::是指出cout和endl的命名空间,命名空间可以帮助我们避免名字定义冲突
- 另一个更简便的方法:using声明(第3章介绍)
(5)输入运算符(>>)
- 其左侧是一个istream,右侧是一个接受对象
练习
1.编写程序,打印“Hello World”
#include <iostream>
int main()
{
std::cout<<"Hello World"<<std::endl;
return 0;
}
2.编写使用乘法运算打印两个数乘积的程序
将例子中的加号改为 * 号即可
3.重写程序,将打印对象放在一条独立语句中
将例子程序中的std::cout切开,记得添加std::endl
4.解释下列语句是否合法
std::cout<<"The sum of"<<v1;
<<"and"<<v2;
<<"is"<<v1 v2<<std::endl;
不合法,**、二行缺乏std::endl结束输出,第二、三行缺乏std::cout作为指定输出的对象
1.3 注释
(1)注释界定符(/* */),可以多行,不可以嵌套
(2)单行和半行(//)
1.4 控制流
(1)while语句,形式如下
while(condition)
statement
(2)复合赋值运算符
- ( =)本质上相当于sum=sum val
- ( )前缀:将运算对象加1,等价于val=val 1
练习
1.编写程序,用while循环50~100整数相加
#include <iostream>
int main()
{
int sum=0,val=50;
while(val<=100){
sum =val;
val ;
}
std::cout<<"The sum is:"<<sum<<std::endl;
return 0;
}
2.使用–运算实现10~0的运算
- 上程序改成(–)
3.编程:用户输入两个数,打印出这两个数之间的整数
#include <iostream>
int main()
{
int left,right;
std::cout<<"Please enter two numbers"<<std::endl;
std::cin>>left>>right;
while(left<=right){
std::cout<<left<<std::endl;
left ;
}
return 0;
}
(1) for语句,形式如下
for(init-statement;condition;expression)
statement
读取数量不定的输入数据
int main()
{
int sum=0,value=0;
while(std::cin>>value)
sum =value;
std::cout<<"Sum is: "<<sum<<std::endl;
return 0;
}
windows中,文件输入结束符为:ctrl Z
Mac或者UNIX系统中,文件输入结束符为:ctrl D
(4) if 语句,形式如下
if(conditon)
statement
统计输入中每个值连续出现了多少次程序
int main()
{
int currVal=0,val=0;
if(std::cin>>currVal){
int cnt=1;
while(std::cin>>val){
if(val==currVal)
cnt;
else{
std::cout<<currVal<<" occurs "<<cnt<<" times"<<std::endl;
currVal=val;
cnt=1;
}
}
std::cout<<currVal<<" occurs "<<cnt<<" times"<<std::endl;
}
return 0;
}
1.5 类简介
(1)**定义一个类来定义自己的数据结构
(2)关键概念:类定义了行为
- 类的作者决定了类类型对象上可以使用的所有操作
==(3)使用文件重定向==
- 当测试程序时,反复敲键盘是非常乏味的,可以利用文件重定向
$ addItems <infile>outfile
程序已经为编译为名为addItems的可执行文件,上述命令会从一个名为infile的文件读取销售记录,并将输出结果写入到一个名为outfile的文件中
1.6书店程序
#include <iostream>
#include "Sales_items.h"
int main(){
Sales_item total;
if(std::cin>>total){
Sales_item trans;
while(std::cin>>trans){
if(total.isbn()==trans.isbn()){
total =trans;
}
else{
std::cout<<total<<std::endl;
total=trans;
}
}
std::cout<<total<<std::endl;
}
else{
std::cerr<<"No data?!"<<std::endl;
return -1;
}
return 0;
}
相关推荐:
苏州JAVA培训 苏州JAVA培训班 苏州JAVA培训机构