Java是什么意思?_java的反射到底是有什么用处?怎么用?
-
-
1、 Java是什么意思?
(1)Java是一种编程语言。人与人之间交流,用的是人类语言(比如汉语、英语、法语、德语),而人类和计算机交流,就是用的编程语言。因此,编程语言(programminglanguage),是一种计算机和人都能识别的语言。
和人类多种多样的语言一样,计算机编程语言也有非常多的种类,Java语言是一种比较高级的编程语言,也是使用比较广泛影响力最大的的编程语言。
“编程语言处在不断的发展和变化中,从最初的机器语言发展到如今的2500种以上的高级语言,每种语言都有其特定的用途和不同的发展轨迹。”(来源于网络)
其实,Java的这个名字其实就是来自于印尼的爪哇岛。最初Java的名字叫Oak(橡树),在申请注册商标时,发现Oak已经被人使用了,再想了一系列名字之后,最终,使用了提议者在喝一杯Java咖啡时无意提到的Java词语,并将Oak更名为Java,其logo就是一杯咖啡。😆
(2)Java是一个地名(印尼语:Jawa,爪哇语:Jawa)。印度尼西亚的爪哇岛(Javaislands)也常写作Jawaislands,是印度尼西亚的第五大岛。
爪哇岛是印度尼西亚的岛屿,位于赤道南方,南临印度洋,北面爪哇海。面积13.88万平方公里,人口1.45亿,岛屿西部有首都——雅加达。
(3)Java也是意大利的自行车品牌。中文名翻译成【佳沃】。品牌产品主要有来山地车、儿童自行车、城市车、折叠车、公路车。
参考资料源于网络。
-
2、 java的反射到底是有什么用处?怎么用?
Java反射说的是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性。对于任何一个对象,我们都能够对它的方法和属性进行调用。我们把这种动态获取对象信息和调用对象方法的功能称之为反射机制。
可以不通过new关键字获取对象并且使用类对象中的成员变量,方法,修饰符等等,在这里举例获取类。
第一种:使用Class.forName(StringclassPath)ClassPath:写需要反射的类名,一般是以包名.类名。如:Classclazz=Class.forName("com.entity.Example");
第二种:直接使用Classclz=类名.class
这种情况一般在我们知道有这个类的时候去使用。如:Classclz=Example.class;
第三种:Classclz=对象.getClass();
前提是对象已经被实例化出来了。如:
Exampleex=newExample();
Classclz=ex.getClass();
这三种方法都有各自的优点,一般我们使用第一种比较多,按照自己的实际需求去使用才是最好的。反射有啥用?有啥应用场景?
1.spring框架的ioc是基于java的反射机制。
2.JDBC的数据库的连接注册驱动,获取连接也是基于Java反射。
3.Hibernate,Mybatis都有运用到反射。
-
3、 自学java?
“这是一篇完整的java程序员学习线路图,一共分为六个阶段。
我以java为例,展示完整的学习步骤。
希望对于想通过java自学的朋友有帮助。
java程序员学习线路流程
第一步:Java语言基础
从最简单的开始,helloworld开始Java之旅
1.编程基础
常量与变量
数据类型
运算符
流程控制语句
方法
数组
2.面向对象
面向对象思想
类与对象
成员变量和局部变量
封装
this关键字
构造方法
3.集合
集合概述
集合特点
ArrayList集合
HashMap集合
常用集合优劣比较
4.输入/输出IO
字符输入流
字符输出流
字符缓冲输入流
字符缓冲输出流
复制文件
集合与文件中数据相互读写
5.练习阶段
属于你自己的helloword
第二步:java语言高级
再结合java高级部分,里面的部分内容,这个阶段你不一定能理解很彻底。但有一点,如果你今后想进入高阶俱乐部,这些内容你必须掌握牢固。
举个栗子,如果你面试通过进入了公司,我一定会在早期仔细review你的代码。代码的功力是欺骗不了人的,不同人写一个接口,呈现的结果也是千差万别(所以才有了规范)。
1.面向对象
继承
多态
重写(Override)
重载(Overload)
封装
接口
java包package
2.异常处理
异常概述
异常分类
异常处理方案
自定义异常
3.多线程
Java线程:概念与原理
Java线程:创建与启动
Java线程:多线程的实现方案
Java线程:线程生命周期
Java线程:线程池
Java线程:线程状态的转换
Java线程:线程的同步与锁
Java线程:线程的交互等等
线程的几个主要概念
在多线程编程时,你需要了解以下几个概念
线程同步
线程间通信
线程死锁
线程控制:挂起、停止和恢复
4.输入与输出IO
文件和I/O
读写文件
Java流(Stream)
文件(File)
缓冲流
5.泛型(Generic)
泛型的使用场景
泛型类型
泛型方法
泛型通配符?
6.网络编程
网络机制
Socket原理机制
UDP、TCP传输等
7.反射(reflection)
类加载机制原理
反射构造方法、字段、方法
Properties配置文件
8.注解(annotation)
注解的使用和原理
三种内置annotation
自定义annotation
注解类的反射调用
动态代理类如何处理
9.Java高级特性和类库
java类加载器classloader
java程序运行的基础知识,java编译后的bytecode的整个运行机制,这一点对应.net的IL(intermediatelanguage)。
理解Javanio,关于这一点网上有非常多的教程,这一条需要重点掌握,对于高并发的掌握很重要。
javajuc(java.util.concurrent)等等
10.JVM原理和调优
JVM最重要的三个部分必须要非常清楚,内存划分、class加载机制以及GC策略。搞清楚这三部分不仅仅是为了面试,也是为了让你对于Java有更深刻的理解,这对于你的Java生涯非常有帮助。
内存划分简单说分为三个部分,YoungGeneration(年轻代)、OldGeneration(年老代)以及PermGeneration(永久代)。其中的YoungGeneration(年轻代),又分为Eden、From和To,其中From和To又统称为SurvivorSpaces(幸存区)。
关于classloader机制的学习,可以结合tomcat去学习,了解清楚tomcat的classloader机制,看tomcat是如何保证各个APP之间的类隔离的。如果可能的话,看一下tomcat中classloader的源码,当中也包含了与tomcat类加载机制相似的部分。
至于GC,需要清楚GCRoots都有哪些,以及如何判断一个对象可以被回收。此外,GC的算法和策略也要有大概的了解。
第三步:javaweb阶段
1.前段技术掌握
html
css
js
jquery
bootstrap
2.动态网页技术
JavaServletAPI
Velocity
FreeMarker
JSP等常用模板引擎
比如,淘宝前端层使用的是velocity模板,部分公司采用jsp、freemarker等,基本类似。
3.linux服务器基本命令
在个阶段,也可以结合自己的情况,学习linux系统底层原理。
第四步:java框架阶段
1.SSH(struts2+spring+hibernate)
2.SSM(springmvc+spring+mybatis)
备注:如果你仔细,网上有部分叫SSI,I为ibatis,后来ibatis改名为mybatis了。
框架组合,我首推SSM,比SSH灵活强大。
框架的优缺点,我会再单独写文。
如果你还有兴趣,可以自己搭建Lucene、solr框架,以及memcached/redis、activeMQ、hadoop等等搜索、分布式缓存、异步消息、数据等。
我一般建议自己搭建,从学习效果再到理解深度都不一样。有兴趣,就开始自己搭建。
第五步:开发工具阶段
1.web调试工具
firefox
firebug
webdeveloper
yslow
httpwatch
ietester等
这些都是开发必用。
2.集成开发工具
eclipse(首推),STS,myEclipse,Idea
eclipse里的插件太多,推荐几个必装插件:
JadClipse、run-jetty-run(很牛的热部署调试)、veloctiy、freemarkerIDE、Subclipse、m2eclipse、mybatisEditor、EasyExplorer等等。
3.版本控制工具
svn、git(首推)
4.构建工具
maven、nexus搭建maven私服
建议自己搭建一套nexusmaven私服,成为你们公司的代码仓库员。
5.java调试工具
jProfiler(性能跟踪)
jClarity(性能监控和日志分析)
Visualvm(性能分析和调优)等
优知学院是IT人的进阶站,提供系统的互联网产品&技术的入门指南以及进阶干货。 -
4、 Java编程?
Java现在可以说是使用很广泛的一个编程语言。而且java的就业薪资和岗位也是名列前茅。根据我过来的学习经验,我的看法是这样的,能有优秀的英语功底当然是好的。不过当前英文基础不是很好的话,也不影响你学习一门语言,毕竟中文的优秀学习资料有很多。.另外再做技术到一定程度后最新最好的技术都是要直接去看各种技术官方文档的当前技术社区整体还是老外在引领的,所以要想深入掌握一线的技术,英文阅读功底肯定是必不可少的,总之呢,英语是能够让你更进一步的工具,但不是阻碍你学习一门语言的障碍。重要说三点,Java里面本身常用到的单词不多,甚至说很少。而且开始阶段你也不用担心太多,你学的都是现成的,不懂就查。英语好的程序员编程水平不一定高,因为决定编程水平的并不是英语。那种真正的编程重要的是设计和流程。最后你真的想学就去学,别想那么多,有的没的,当你学到了一定程度,并且人员对加了盐感兴趣,你就会发现自己竟然会主动去学英语了。如果你现在是刚学Java,在入门学习成为了过程当中缺乏技术入门的视频教程,你可以去看看北京尚学堂java300集,非常系统完整,而且很适合小白,干货满满,我之前是老师推荐的,确实对我很有帮助,相信也可以带你走进java编程世界。Java小白的话,建议你可以考虑跟着百战程序员的Java学习一下,对小白学习Java有很大的帮助,不仅是从0基础开始的,全程有老师辅导,有问题可以及时解决;而且是实战化的,每个阶段还有实操和项目练习。可以学习一个完整的体系,更好的学习Java
-
5、 Java具体学什么?可以应用哪些方面?
你好!java主要学习的内容有以下方面:
第1阶段,JavaSE基础:
Java环境构建、Java过程控制语句-for环路、switch选择决策、环路嵌套、数组副本、多维数组、final关键字、构造函数调用、类访问和路径、面向对象的高级特性、Java异常处理、Set、Map、listinter
IO流、文件操作、复制、读写、删除等。
第2阶段,JavaWeb:
MySQL安装、管理、创建数据库、MySQL更新
查询、高级MySql操作、JDBC、JDBC数据库链接操作、JDBC动态sql处理、servlet3.0web重定向、servlet3.0
添加了新的注释支持、AJAX和responseText属性详细信息等。
第3阶段,Java扩展框架-SSH:
异常处理、StrutsLog4j集成、Struts2和JSON实例、Hibernate5、Hibernate集合映射、Hibernate组件映射、Spring4.0、Spring
AOPAspectJ框架、Spring与其他Web框架的集成、SpringHibernate支持等。
第4阶段,Java扩展框架-SSM:
SpringMVC、SpringMVC生成JSON数据、MyBatis、MyBatis环境配置和入门、Mybatisset标记和MyBatis
trim标签、Shiro、Shiro快速入门教程、ShiroWeb应用程序等。
在第5阶段,SpringBootVUE的完整堆栈框架
SpringBoot、全局异常处理、过滤器侦听程序、EHCache高速缓存、SpringBootQuartz调度任务、Vue、Vue.js
安装、模板语法、计算属性、事件处理器、Vue.js自定义命令、Vue.js路由等
java主要应用在以下方面:
1.现代企业信息化方面
2.电子政府业务和自动办公业务
3.教学辅助方面
-
6、 java只是语言开发吗?java还能做什么?
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java在以下八个领域都是适用的
第1个领域-桌面应用系统开发
比如以下这种,应用于windows下。
第2个领域-嵌入式系统开发
应用于安卓,STM32,单片机等等。
第3个领域-电子商务系统开发
下面是比较常见的一个JAVA电子商务系统。
还有很多很多,请自行搜索。
第4个领域-企业级应用开发
主要有OA,ERP等类似企业级应用。
第5个领域-交互式系统开发
第6个领域-多媒体系统开发
可以对音频,图片,视频等多媒体相关功能开发。
第7个领域-分布式系统开发
实现方式就是这样,具体拿来做什么业务,可以看需求。
第8个领域-Web应用系统开发
很多常见的网站都是JAVA的web应用
斜阳说
JAVA目前是计算机领域被应用最广的语言,只有你想不到,暂时没有他做不到的东西。
而且,JAVA也是目前最受欢迎的变编程语言。
学JAVA至少不用担心就业。