做JAVA软件开发要学习什么?

做JAVA软件开发要学习什么?,第1张

就我个人来看,如果你C语言、数据结构和算法学得好(当然好的定义很宽泛,我是指对C语法理解透彻,对数列、堆栈、链表都比较熟悉,可以独立编写可运行的小型系统,比如什么图书管理系统和连接数据库的小程序),学Java不是什么难事,关键是对面向对象概念的理解,多些对照书本联系调试吧,我觉得希望出版社的《java程序员开发指南》这本书不错。

再学学用JSP写些简单页面,开始尽量不要使用太复杂的IDE,Eclipse还是等熟悉后开发项目再用吧,先用EditPlus等编写比较好,可以锻炼你自己调试的能力。当然JavaScript也是必学的,再练习连接数据库并熟悉各种 *** 作。建议先用sql2000或mysql,熟悉再学oracle。

以上基本完成后,再寻找机会做一个大点的项目,哪怕只是几个模块。将它当今后工作来做,认真写好开发文档,包扩需求文档,概要设计,详细设计,这对你今后工作积累经验是一个好的锻炼机会。这时候可以尝试用MVC模式和使用一些框架,Strust,Hibernate,Spring和一些新工具Eclipse,JBuilder,NetBean等还有用项目管理工具,如CVS,这对增强自身竞争力很有好处。

具体什么书要因人而异,一开始看《Java编程思想》是不切实际的,看得明白又容易理解,感觉对自己有帮助的就是好书。我主要提供一个学习流程的思路供你参考,具体如何学还要自己边学边摸索,希望对你有用吧!

所有stl头文件不包含.h

stl体现了泛型编程的思想,就 *** 作与数据分离。

stl中包含:容器,迭代器,算法。

常用容器有:

<序列式容器>:元素有固定位置,元素位置与插入顺序有关,与元素值无关,有:vector(向量),deque(双端队列),list (列表)

<关联式容器>:属于已序集群,元素位置与元素值与排序关系有关,与插入次序无关,有:set(集合),map(映射),mutiset(多重集合),mutimap(多重映射)

常用算法有:

find,count,min,max,min_element,max_element,search,equal,sort,(lambda)

(1)逐一介绍

vector

数据结构:数组。内存不够时从新分配新数组,再复制。属于连续空间。

特点:随机访问快,中间插入、删除慢(时间:n),末尾插入、删除快,常用做堆栈,[]快。

注意:如果想要更好的效率,可以在初始化后使用resize()函数。vector在多线程不安全:

A:程序崩溃,因为线程A vector进行写时,如果内存已满会重新申请内存,此时它的地址已经改变,而线程B依旧在写入/读入已经无效的地址,就会造成崩溃。可以初始化很大区间或者加上进程同步锁。

deque(double-ended queue)

数据结构:页链表,在前/尾段增加新空间,内存要分配一段空间,维护整体连续的假象。

特点:两端 *** 作快,中间 *** 作慢,按页或块分配内存,每页容纳固定数目元素,deque是list与vector的折中方案,[]快。

list(double linked list)

数据结构:双向链表,内存空间不连续。

特点:任意地方 *** 作效率高,不提供[]重载,访问开始结束元素快,随机访问慢。

set(集合)

数据结构:红黑树(一种平衡搜索树),内部元素自动排序,每个元素只能出现一次,结构体需要重载运算符"<"(重载需要保证唯一性),大部分 *** 作复杂度为:log(n)。

特点:自动排序好的,map与set的插入删除效率高。

map(映射)

数据结构:红黑树,每个元素需要有键值,基于键值排序,一对一映射,键值结构体也需要重载运算符"<",大部分 *** 作为log(n)。

特点:自动建立key-value,对于迭代器,可以修改实值,不可以修改key。

mutiset,mutimap

支持重复元素/键值的set/map

(3)其他

容器共性

empty(),size().

迭代器有:

begin()

end()

rbegin()

rend()

clear()

erase(it)

在线广告监测系统

精选推荐

广告

C++ STL 参考手册Cpp_STL_ReferenceManual.pdf

21下载·0评论

2020年12月21日

Cpp.STL程序员开发指南.pdf

30下载·1评论

2013年7月21日

c++基础知识——STL之链表

5329阅读·22评论·23点赞

2022年5月5日

C++语言学习之STL 的组成

496阅读·0评论·0点赞

2015年6月3日

cpp中的STL简介

2141阅读·0评论·1点赞

2016年10月28日

Cpp STL

123阅读·0评论·1点赞

2022年8月3日

破壁机和料理机的区别

精选推荐

广告

C++ set&mulitset 与 仿函数(函数对象)

670阅读·0评论·1点赞

2020年3月9日

CPP_STL(标准模板库)

484阅读·0评论·0点赞

2021年3月18日

CPPSTL六大部件

140阅读·0评论·0点赞

2020年10月9日

cpp的STL算法

1617阅读·0评论·0点赞

2016年11月1日

CPP STL

664阅读·0评论·0点赞

2014年5月18日

CppSTL(一)

109阅读·0评论·0点赞

2022年3月13日

cpp的stl的队列和栈

2161阅读·0评论·0点赞

2016年11月1日

CPPSTL的一些函数 *** 作

71阅读·0评论·0点赞

2021年2月28日

C++ STL 之 list

100阅读·0评论·0点赞

2019年5月25日

STL-CPP

0下载·0评论

2021年3月6日

C++ STL 链表写法

4325阅读·0评论·1点赞

2019年1月30日

C++ STL list链表的基本 *** 作

7014阅读·0评论·0点赞

2018年9月28日

cpp的STL之list

880阅读·0评论·0点赞

2016年10月28日

C语言的那些小秘密之动态数组

6.6W阅读·56评论·45点赞

2011年7月21日

去首页

看看更多热门内容


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11100514.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存