Java是当下最火编程语言之一。Java软件开发工程师即当下做热门的职业,而Java软件开发最佳的框架你了解多少呢每个框架都有各自的优劣势,IT培训>
SpringMVC:出现时间久远,具有较好的开发系统,帮助你查询需要的。最好和最知名的Java框架之一。
Struts2:对于Java软件开发工程师是个很好的选择。它使得测试写代码所需的工作量减轻了。不过它也是不够灵活的。
Hibernate:可对java软件开发对象执行数据库 *** 作。可弥合对象和关系词之间的差距。独立于DB的。
JSF:JavaServerFaces,易使用,无外部依赖,提供很多功能。
Vaadin:是Java软件开发工程师创建业务应用程序时使用的框架。
GWT:GoogleWebToolkit是免费的,可优化复杂的程序,可获得单个代码库,简化开发和调试过程。
Grails:功能强大,设置新项目和支架很快。
各种流行框架都有着自己的优缺点,只要你记得选个适合项目的,方便安装,网络的活跃程度适合的等等就可以。
网络上知名的IT行业的社区和论坛:
CSDN技术社区
对象: 只适合软件开发者
特色: 技术开发最全面的论坛,里面可以遇到很多牛人,版面也很全,什么J2EE,NET
啊,该有的全上,在这里基本上可以提出任何问题,人气也是最旺的,不过一般提出的意见都有正方两面的,所以最终解决问题,还是靠自己。专业,很牛逼,就是速度慢。
itpub论坛
对象: 数据库开发人员
特色: 数据库方面是非常著名的,牛人不少,不过,现在比较杂,什么都做,网络, *** 作系统,行业应用,到体育贴图,当然有些也不错,人气非常高,特别是灌水方面。
UNIX论坛
对象: 系统工程师
特色:这里的特色就是 *** 作系统方面在业界是最著名的,牛人不少,目前,在数据库,网络方面也颇有建树,当然灌水方面也不赖,呵呵,属于温柔性
JAVA世界
对象: JAVA开发
特色: JAVA方面非常综合的论坛了,牛人也很多,是一个难得的JAVA论坛,涉及你想象的关于JAVA目前任何技术。速度还可以。
HUIHOO论坛
对象: 中间件开发者
特色: 人气不错,版面风格独特,在开源,中间件,工作流方面非常不错,问题讨论都非常深刻、也很专业。速度一般;
IT售前论坛
对象: IT售前及技术顾问
特色: 业界知名的售前技术顾问论坛,比较新异的知识点,各个IT行业版快划分也比较好,也非常专业,绝对是我稀饭(喜欢)的风格,网站风格业内罕见,也有很多专业文章,没有地方灌水,厉害。
菊花论坛
对象: 网络工程师
特色: 之所以我喜欢是这个网站很多做CISCO工程都知道,也是别人介绍我去的,时间非常久了,颜色比较暗谈,属于忧郁型。
AMTEAM社区
对象: 高端IT人士, 特别是IT管理人士
特色: 评论类比较多,基本上在其他媒体上看到的评论,这里都会有,要想了解IT发展的情况,就来这里看看。
华尔街社区
对象: 需要阅读财经文章IT人士, 特别是IT媒体/策划/创业者
特色: 如果你是关注财经科技, 特别是NASDAQ和VC的人士, 建议去华尔街社区在华尔街社区你可能经常碰到IT/VC大佬在跟踪国际市场行情变化等方面独树一帜。
世界经理人社区
对象: IT管理人士, 特别是CEO/CIO/CTI/CHO/CFO等高级经理
特色: IT精英必需懂管理, 否则永远是小程序员可能是最好的管理社区了, 商业领袖、商业新知、创业论坛、职场生涯等栏目可以说在页界非常有名气! 如果你是或想当大公司的职业经理人,或想开始创业, 推荐去看看。
Linux内核的配置系统由三个部分组成,分别是:
Makefile:分布在 Linux 内核源代码中的 Makefile,定义 Linux 内核的编译规则;
配置文件(configin):给用户提供配置选择的功能;
配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供基于字符界面、基于 Ncurses 图形界面以及基于 Xwindows 图形界面的用户配置界面,各自对应于 Make config、Make menuconfig 和 make xconfig)。
这些配置工具都是使用脚本语言,如 Tcl/TK、Perl 编写的(也包含一些用 C 编写的代码)。本文并不是对配置系统本身进行分析,而是介绍如何使用配置系统。所以,除非是配置系统的维护者,一般的内核开发者无须了解它们的原理,只需要知道如何编写 Makefile 和配置文件就可以。所以,在本文中,我们只对 Makefile 和配置文件进行讨论。另外,凡是涉及到与具体 CPU 体系结构相关的内容,我们都以 ARM 为例,这样不仅可以将讨论的问题明确化,而且对内容本身不产生影响。
2. Makefile
21 Makefile 概述
Makefile 的作用是根据配置的情况,构造出需要编译的源文件列表,然后分别编译,并把目标代码链接到一起,最终形成 Linux 内核二进制文件。
由于 Linux 内核源代码是按照树形结构组织的,所以 Makefile 也被分布在目录树中。Linux 内核中的 Makefile 以及与 Makefile 直接相关的文件有:
Makefile:顶层 Makefile,是整个内核配置、编译的总体控制文件。
config:内核配置文件,包含由用户选择的配置选项,用来存放内核配置后的结果(如 make config)。
arch//Makefile:位于各种 CPU 体系目录下的 Makefile,如 arch/arm/Makefile,是针对特定平台的 Makefile。
各个子目录下的 Makefile:比如 drivers/Makefile,负责所在子目录下源代码的管理。
Rulesmake:规则文件,被所有的 Makefile 使用。
用户通过 make config 配置后,产生了 config。顶层 Makefile 读入 config 中的配置选择。顶层 Makefile 有两个主要的任务:产生 vmlinux 文件和内核模块(module)。为了达到此目的,顶层 Makefile 递归的进入到内核的各个子目录中,分别调用位于这些子目录中的 Makefile。至于到底进入哪些子目录,取决于内核的配置。在顶层 Makefile 中,有一句:include arch/$(ARCH)/Makefile,包含了特定 CPU 体系结构下的 Makefile,这个 Makefile 中包含了平台相关的信息。
位于各个子目录下的 Makefile 同样也根据 config 给出的配置信息,构造出当前配置下需要的源文件列表,并在文件的最后有 include $(TOPDIR)/Rulesmake。
Rulesmake 文件起着非常重要的作用,它定义了所有 Makefile 共用的编译规则。比如,如果需要将本目录下所有的 c 程序编译成汇编代码,需要在 Makefile 中有以下的编译规则:
%s: %c
$(CC) $(CFLAGS) -S $< -o $@
有很多子目录下都有同样的要求,就需要在各自的 Makefile 中包含此编译规则,这会比较麻烦。而 Linux 内核中则把此类的编译规则统一放置到 Rulesmake 中,并在各自的 Makefile 中包含进了 Rulesmake(include Rulesmake),这样就避免了在多个 Makefile 中重复同样的规则。对于上面的例子,在 Rulesmake 中对应的规则为:
%s: %c
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$(F)) $(CFLAGS_$@) -S $< -o $@
22 Makefile 中的变量
顶层 Makefile 定义并向环境中输出了许多变量,为各个子目录下的 Makefile 传递一些信息。有些变量,比如 SUBDIRS,不仅在顶层 Makefile 中定义并且赋初值,而且在 arch//Makefile 还作了扩充。
常用的变量有以下几类:
1) 版本信息
版本信息有:VERSION,PATCHLEVEL, SUBLEVEL, EXTRAVERSION,KERNELRELEASE。版本信息定义了当前内核的版本,比如 VERSION=2,PATCHLEVEL=4,SUBLEVEL=18,EXATAVERSION=-rmk7,它们共同构成内核的发行版本KERNELRELEASE:2418-rmk7
2) CPU 体系结构:ARCH
在顶层 Makefile 的开头,用 ARCH 定义目标 CPU 的体系结构,比如 ARCH:=arm 等。许多子目录的 Makefile 中,要根据 ARCH 的定义选择编译源文件的列表。
3) 路径信息:TOPDIR, SUBDIRS
TOPDIR 定义了 Linux 内核源代码所在的根目录。例如,各个子目录下的 Makefile 通过 $(TOPDIR)/Rulesmake 就可以找到 Rulesmake 的位置。
SUBDIRS 定义了一个目录列表,在编译内核或模块时,顶层 Makefile 就是根据 SUBDIRS 来决定进入哪些子目录。SUBDIRS 的值取决于内核的配置,在顶层 Makefile 中 SUBDIRS 赋值为 kernel drivers mm fs net ipc lib;根据内核的配置情况,在 arch//Makefile 中扩充了 SUBDIRS 的值,参见4)中的例子。
4) 内核组成信息:HEAD, CORE_FILES, NETWORKS, DRIVERS, LIBS
Linux 内核文件 vmlinux 是由以下规则产生的:
vmlinux: $(CONFIGURATION) init/maino init/versiono linuxsubdirs
$(LD) $(LINKFLAGS) $(HEAD) init/maino init/versiono
--start-group
$(CORE_FILES)
$(DRIVERS)
$(NETWORKS)
$(LIBS)
--end-group
-o vmlinux
可以看出,vmlinux 是由 HEAD、maino、versiono、CORE_FILES、DRIVERS、NETWORKS 和 LIBS 组成的。这些变量(如 HEAD)都是用来定义连接生成 vmlinux 的目标文件和库文件列表。其中,HEAD在arch//Makefile 中定义,用来确定被最先链接进 vmlinux 的文件列表。比如,对于 ARM 系列的 CPU,HEAD 定义为:
HEAD := arch/arm/kernel/head-$(PROCESSOR)o
arch/arm/kernel/init_tasko
表明 head-$(PROCESSOR)o 和 init_tasko 需要最先被链接到 vmlinux 中。PROCESSOR 为 armv 或 armo,取决于目标 CPU。 CORE_FILES,NETWORK,DRIVERS 和 LIBS 在顶层 Makefile 中定义,并且由 arch//Makefile 根据需要进行扩充。 CORE_FILES 对应着内核的核心文件,有 kernel/kernelo,mm/mmo,fs/fso,ipc/ipco,可以看出,这些是组成内核最为重要的文件。同时,arch/arm/Makefile 对 CORE_FILES 进行了扩充:
# arch/arm/Makefile
# If we have a machine-specific directory, then include it in the build
MACHDIR := arch/arm/mach-$(MACHINE)
ifeq ($(MACHDIR),$(wildcard $(MACHDIR)))
SUBDIRS += $(MACHDIR)
CORE_FILES := $(MACHDIR)/$(MACHINE)o $(CORE_FILES)
endif
HEAD := arch/arm/kernel/head-$(PROCESSOR)o
arch/arm/kernel/init_tasko
SUBDIRS += arch/arm/kernel arch/arm/mm arch/arm/lib arch/arm/nwfpe
CORE_FILES := arch/arm/kernel/kernelo arch/arm/mm/mmo $(CORE_FILES)
LIBS := arch/arm/lib/liba $(LIBS)
5) 编译信息:CPP, CC, AS, LD, AR,CFLAGS,LINKFLAGS
在 Rulesmake 中定义的是编译的通用规则,具体到特定的场合,需要明确给出编译环境,编译环境就是在以上的变量中定义的。针对交叉编译的要求,定义了 CROSS_COMPILE。比如:
CROSS_COMPILE = arm-linux-
CC = $(CROSS_COMPILE)gcc
LD = $(CROSS_COMPILE)ld
CROSS_COMPILE 定义了交叉编译器前缀 arm-linux-,表明所有的交叉编译工具都是以 arm-linux- 开头的,所以在各个交叉编译器工具之前,都加入了 $(CROSS_COMPILE),以组成一个完整的交叉编译工具文件名,比如 arm-linux-gcc。
CFLAGS 定义了传递给 C 编译器的参数。
LINKFLAGS 是链接生成 vmlinux 时,由链接器使用的参数。LINKFLAGS 在 arm//Makefile 中定义,比如:
# arch/arm/Makefile
LINKFLAGS :=-p -X -T arch/arm/vmlinuxlds
6) 配置变量CONFIG_
config 文件中有许多的配置变量等式,用来说明用户配置的结果。例如 CONFIG_MODULES=y 表明用户选择了 Linux 内核的模块功能。
config 被顶层 Makefile 包含后,就形成许多的配置变量,每个配置变量具有确定的值:y 表示本编译选项对应的内核代码被静态编译进 Linux 内核;m 表示本编译选项对应的内核代码被编译成模块;n 表示不选择此编译选项;如果根本就没有选择,那么配置变量的值为空。
23 Rulesmake 变量
前面讲过,Rulesmake 是编译规则文件,所有的 Makefile 中都会包括 Rulesmake。Rulesmake 文件定义了许多变量,最为重要是那些编译、链接列表变量。
O_OBJS,L_OBJS,OX_OBJS,LX_OBJS:本目录下需要编译进 Linux 内核 vmlinux 的目标文件列表,其中 OX_OBJS 和 LX_OBJS 中的 "X" 表明目标文件使用了 EXPORT_SYMBOL 输出符号。
M_OBJS,MX_OBJS:本目录下需要被编译成可装载模块的目标文件列表。同样,MX_OBJS 中的 "X" 表明目标文件使用了 EXPORT_SYMBOL 输出符号。
O_TARGET,L_TARGET:每个子目录下都有一个 O_TARGET 或 L_TARGET,Rulesmake 首先从源代码编译生成 O_OBJS 和 OX_OBJS 中所有的目标文件,然后使用 $(LD) -r 把它们链接成一个 O_TARGET 或 L_TARGET。O_TARGET 以 o 结尾,而 L_TARGET 以 a 结尾。
1、一定的时间保证
我们常常会计划每天用半个小时去学习一门新语言。尽管这种办法最后也会学好,但是却不如花整整一到两天去专门学习来的有效。用大块的、不间断的时间去学习会让你完全沉浸其中。
小片时间对于学习一种新的编程语言来说不太有成效,适合的做法是把这小片时间用来复习学过的知识。
2、找到一本功能清单(CheatSheet,例如:YUI就对每个组件都提供CheatSheetPDF下载)
表面上看似乎功能清单挺简单的,但是它比一些引用更有价值。它上面有一些非常有用的功能小片段的代码和一些功能概述。简单地根据功能清单你就可以清楚该语言的语法,使之后的学习更容易些。
3、收集相关的资料
无论哪种语言都有很多的相关资料,但是有些是适合你的,有些不是。
收集更多的资料你可以更全面的进行学习,而且让你确立写代码的风格和比别人获取更好的资源。找一本高质量的书也不错,但是如果你只是想学习该语言的初级知识,最好的方法是到Google上搜下,可以用下面的关键字来找找一些资料和相关介绍性文章:
Tutorials,Tipsposts,Bestpractices等(找资料用英文,找到的质量高些)
对于啥都有的网络来说,你得找一些高质量的信息来源,到时候直接上那找比较方便。比如O'relly,IBM,Nuttuts等等。
O'relly的在线书架(bookshelf)是非常好的高质量信息来源,但是要收费用。(有空去看看,嘿嘿,不过是英文的,唉。)
需要强调的是:你得相信那些该语言的“大牛”们,看看他们些的那些例子代码,高质量的,别一开始就看了那些不良代码,染上坏习惯就不好改了。
4、完全理解该语言的“文档”
很多人会跳过“从这里开始(Gettingstarted)”这个文档,直接去看指南和例子。虽然熟读指南对于理解一门语言是至关重要的,但是那是假设你对语言有基本了解的情况下来说的,而“Gettingstarted”就是做这个事情的,千万别没学会走就像想学飞,嘿嘿。
5、消化下学过的知识,休息一下
在你收集了资料,阅读和理解了基础知识之后,用学过的知识做个Demo是很明智的做法。不过这之前,你得让你学习的知识巩固到你的头脑中。IT培训>
一个不错的练习是:用个一天学习基础知识,然后第二天做个Demo。
一、不是故意写错的(引号中为错别字)
1、饭店门口:“抄”饭
2、修车店门口:补胎“冲”气
3、零售店铺门口:“另”售
4、家具店门口:家“俱”
5、装潢店门口:装“璜”
6、失物广告:失物“启示”
7、安装公司门口:“按”装
8、洗车店门口:洗车打“腊”
9、饭店门口:“合”饭
10、水果店门口:“波”萝
11、饭店菜单:鸡“旦”
12、五金店标牌:“扦”座
13、体育用品店标牌:“兰”球
14、快餐店门口:大排“挡”
15、农贸市场标牌:“蕃”茄
16、停车场招牌:“仃”车收费
17、严打宣传标语:严“历”打击
18、某机场横幅:年“青”
19、某交通宣传标语:超限超载“殆”害无穷
20、某食堂菜牌:鱼“园”
二、故意写错的(引号中为错别字)
1、药品广告:“咳”不容缓
2、山地车广告:“骑”乐无穷
3、补品广告:“鳖”来无恙
4、眼镜广告:一“明”惊人
5、驱蚊器广告:默默无“蚊”
6、透明胶带广告:无可替“带”
7、网吧广告:一“网”情深
8、钢琴广告:“琴”有独钟、一见钟“琴”
9、热水器广告:随心所“浴”
10、空调广告:终生无“汗”
11、服装店广告:“衣帽”取人
12、某洗衣店广告:“衣衣”不舍
13、某房产公司广告:万“室”俱备
14、某蛋糕广告:步步“糕”升
15、胃药广告:一“不”到“胃”
16、赛马广告:乐在“骑”中
17、电熨斗广告:百“衣”百顺
18、快餐店广告:“烧”胜一筹
19、洗衣机广告:“闲”妻良母
20、帽子公司广告:以“帽”取人
21、治结石病广告:大“石”化小、小“石”化了
22、打印机广告:百闻不如一“键”
23、涂料广告:好色之涂
24、冰箱广告:制冷鲜锋
25、治痔疮药广告:有痔无恐
26、花园公寓广告:随寓而安
27、跳舞机广告:闻“机”起舞
28、海鲜广告:领“鲜”一步
29、口腔门诊广告:“快治”人口
30、礼品店广告:“礼”所当然
有很多免费代码下载的,你只要GOOGLE上面就会有很多,按你自己需求的去找,原代码的网站很多,一般在IT网站都会有的,你搜索就搜索IT网站,就可以了,能找到你所希望的源代码
下载的源代码以后都有后门,如果你懂的话这个就不需要我教你了~!
以上就是关于IT培训分享Java软件开发工程师需要的最佳框架全部的内容,包括:IT培训分享Java软件开发工程师需要的最佳框架、网上知名IT行业的社区、论坛有哪些、寻,IT类网站源代码!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)