Java SE 基础知识(一)
一、基础知识
1. Java SE : Java Standard Edition
Java ME : Java Micro Edition
Java EE : Java Enterprise Edition
JDK:Java Development Kit
JRE:Java Runtime Environment
JVM : Java Virtual Machine
IDE:Integrated Development Environment
2. Java是由Sun公司推出的,Sun已被Oracle公司收购。
3. Java开发环境的配置:
1). 下载JDK,安装
2). 配置环境变量(可以是用户变量,也可以是系统变量),指向JDK安装目录中的bin目录
JAVA_HOME D:\jdk // 用户jdk安装目录,bin所在目录。
Path ....;D:\jdk\bin 或 ....;%JAVA_HOM%\bin // Path路径下的所有命令可以直接在DOS下执行
3). 通过运行,输入cmd打开命令行窗口,输入java –version,显示出Java版本信息,确认JDK配置成功
4. Java程序的执行分为两步:
1). 编译 (javac className.java //没有包的类(无package) ; javac -d . className.java //有包的类,编译时会自动创建目录。'.' 表示当前目录,d表示目录)
2). 执行 (java className //注意,类名后面没有.class。没有包的类(无package) ; java package.className //有包的类 )
5. Class文件是字节码文件,程序最终执行的就是这个字节码(bytecode)文件。
6. Java是跨平台的,而JVM不是跨平台的(JVM是C语言编写的)。Java之所以能够做到跨平台,本质原因在于JVM不是跨平台的。
7. Java中数据类型分为两大类:
1). 原生数据类型(Primitive Data Type)
2). 引用类型(即对象类型,Reference Type):引用类型是用在对象上的。一个对象可以被多个引用所指向,但同一时刻每个引用只能指向唯一的一个对象。
如果一个对象被多个引用所指向,那么无论哪个引用对对象的属性进行了修改,都会反映到其他的引用当中。
8. 原生数据类型:
1). 字节型:使用byte表示,8位,表示-128~127之间的256个整数
2). 短整型:使用short表示,16位
3). 整 型:使用int表示,32位
4). 长整型:使用long表示,64为
5). 单精度浮点型:使用float表示。所谓浮点型,指的是小数,也叫实数。float的范围为-2^128 ~ +2^128,精度为6~7位有效数字
6). 双精度浮点型:使用double表示。双精度浮点型表示的数据范围要比单精度浮点型大。double的范围为-2^1024 ~ +2^1024,double的精度为15~16位
7). 字符型:使用char表示(char是character的缩写)。所谓字符,就是单个的字符表示,比如字符a,或者中文'张',外面需要用单引号包围上
8). 布尔类型:使用boolean表示。布尔类型只有两种可能指,分别是true与false
关于浮点型范围和精度问题,推荐博客:http://www.cnblogs.com/tekson/archive/2009/07/16/1524604.html
9. Java中的所有浮点类型的数据默认情况下都是double类型。不能直接将double类型的值赋给float类型的变量,即使该double类型的值都处于float类型的范围也是不可以的。
类似的情况还有short和int。 总之,能否成功赋值取决于等号右边的值类型与左边的变量类型是否一致。整数默认是int类型的,含有小数部分的more是double类型的。
将double类型的值赋给float有两种方式:
1). 显示强制类型转换:float 变量名 = (float)变量值 ;
2). 隐式强制类型转换,在赋值时,值后面加F或f:float 变量名 = 变量值F;
总结:可以将表示范围小的值赋给表示范围大的变量;但不能直接将表示范围大的值赋给表示范围小的变量,只能通过强制类型转换实现。
10. 关于计算机系统中的数据表示:
位:bit(只有0,1两种状态),是计算机系统中最小数据表示单位。
1 Byte = 8 bit
1 KB = 1024 Byte
1 MB = 1024 KB
1 GB = 1024 MB
11. Java有三种类型的注释:
1). 单行注释:以//开头,//后面的所有内容均被当做注释处理
2). 多行注释:以/*开头,以*/结束,中间的所有内容均被当做注释处理,多行注释不能嵌套。
3). 另一种多行注释以/**开头,以*/结尾,用于产生Java Doc帮助文档。
12. 运算符:
1). 当有若干个变量参与运算时,结果类型取决于这些变量中表示范围最大的那个变量类型
2). 取模,即取余数。可以通过%运算得到,取模的结果符号永远与被除数保持一致
3). 逻辑运算符,需要注意的是双目运算符:&&和||,会发生短路运算。即如果&&前面的结果确定为false(||前面的结果确认为true),那么,&&和||后面的结果,
将不会继续进行判断(运算)
4). 自增或自减运算:int b = a++ ,是先将值赋给b,然后a再增加1。int b=++a ,先自增1,然后将结果赋值给b
5). 简化运算:b +=a ,即为:b = b + a ,加减乘除均可
6). 三元运算符(即条件运算符):type d = a ? b:c ,a 为boolean值,一般是一个boolean运算。如:int d = 2>3?4 : 5;
13. 流程控制语句:
1). if
2). switch ,switch 中需要注意的是,条件判断后需要加break。否则,当执行完满足条件的语句后,后续不满足条件的内容也会执行。
3). while 和 do ... while 的区别在于,前者先判断后执行。后者先执行,后判断。
4). for(变量初始化;条件判断;步长){ // 待执行代码 },for循环的执行顺序为:
a. 执行变量初始化
b. 执行条件判断。如果条件判断结果为false,那么退出for循环,开始执行循环后面的代码;如果条件判断为真,执行for循环中的代码。
c. 执行步进
d. 重复步骤b
5). break经常用在循环语句中,用于跳出整个循环,执行循环后面的代码。continue语句,经常用在循环语句中,用于跳出当前的这个循环,开始下一次循环的执行。
14. Object Oriented Programming , OOP 面向对象程序编程
Object Oriented Design , OOD 面向对象设计
面向对象程序设计的三大基本特征:继承(Inheritence)、封装(Encapsulation)、多态(Polymorphism)
15. 封装:类包含了数据与方法,将数据与方法放在同一个类中就构成了封装。
16. 如果方法不返回值,那么声明方法时使用void关键字,在方法定义中可以有两种写法:
1). 不使用return语句
2). 使用return,但return后面没有任何值或变量,只有一个方法,即:return;
17. 命名约定:
1). 变量名:变量名以下划线、字母、$符号开头,并且跟下划线、字母、$符号以及数字。需要注意的是,Java中的变量名不能以数字开头。
2). 类:首字母大写,如果一个类名由多个单词构成,那么每个单词的首字母都大写,中间不使用任何的连接符。比如 Person 类,MemberTest 类。
3). 方法:首字母小写。如果一个方法由多个单词构成,那么第一个单词的所有字母全都小写,从第二个单词开始,每个单词的首字母大写。比如 add,addThreeInt。
4). 属性:命名约定与方法相同。比如 age,ageOfPerson。
18. 成员变量和局部变量的区别:对于局部变量来说,使用前必须要初始化;对于成员变量来说,使用前可以不初始化。如果没有初始化成员变量就开始使用,
那么每个类型的成员变量都有一个默认的初始值:
1). byte 、short 、int 、long 类型的初始值为 0
2). float 、double 类型的初始值为 0.0
3). char 类型的初始值 ‘\u0000 ’
4). boolean 类型的 初始值为 false
19. 关于方法参数传递的总结:对于Java中的方法参数传递,无论传递的是原生数据类型还是引用类型,统一是传值(pass by value)。
20. 构造方法(Constructor):构造方法用于完成对象属性的初始化工作,构造方法的特点:
1). 构造方法的名字必须与类名完全一致(包含大小写)
2). 构造方法没有返回值,连void也不能出现
3). 如果在定义一个类的时候,没有为类声明构造方法,那么Java编译器会自动为类添加一个没有参数且方法体为空的构造方法(默认构造方法)
4). 如果在定义一个类的时候,为类声明了构造方法,那么Java编译器就不会再为类添加构造方法了
5). 不能显示调用类的构造方法,构造方法通常是通过new关键字隐式调用
6). 默认的构造方法没有参数且方法体为空
21. new关键字在生成对象时完成了三件事:
1). 为对象开辟内存空间
2). 调用类的构造方法
3). 将生成对象的地址返回
Java SE 基础知识(一)的更多相关文章
- Java SE基础知识
Java SE面试题 目录 Java SE基础 基本语法 数据类型 关键字 面向对象 集合 集合类概述 Collection接口 List Set Map Java SE基础 基本语法 数据类型 Ja ...
- Java SE 基础知识(String,Array)
String 类: 1. 对于String对象的相等性判断来说,请使用equals()方法,而不是==.String的equals()是判断当前字符串与传进来的字符串的内容是否一致. 2. Strin ...
- Java SE 基础知识(二)
1. 类由两大部分构成:属性和方法.属性一般用名词来表示,方法一般用动词来表示. 2. 如果一个java源文件中定义了多个类,那么这些类中最多只能有一个类是public的,可以都不是public的. ...
- Java SE 基础知识
常量: 常量是一种标识符,它的值在运行期间恒定不变,并且常量在程序中只能被引用,而不能被重新赋值. 常量的命名规则: 1.在 Java 中,在变量声明中加入 final 关键字代表常量,加入 stat ...
- 什么才是java的基础知识?
近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考. ...
- Java SE 基础:注释
Java SE 基础:注释 一.注释定义 用于解释说明程序的文字. 二.注释的作用 1.解释说明程序,提高程序的可读性 2.可以帮助我们调试程序:通过注释代码块,检测错误位置 三.格式 1.单行注释 ...
- Java SE 基础:标识(zhì)符
Java SE 基础:标识(zhì)符 一.标识符定义 标识符,就是给类.接口.方法.变量等起名字时的字符序列 二.组成规则与注意事项 1.组成规则 英文大小写字母 数组 $ 和 _ 2.注意事项 不 ...
- Java SE 基础:常用关键字
Java SE 基础:常用关键字 常用关键字表
- Java 多线程——基础知识
java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...
随机推荐
- 初始react
很久就期待学习react了,惰性,一直都没有去翻阅react的资料,最近抽空,简单的了解了一下react,先记录一下,后续慢慢的学习. 一.ReactJS简介 React 起源于 Facebook 的 ...
- hdu2586(LCA最近公共祖先)
How far away ? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- Centos6.5 (或Linux) 安装Elasticsearch
一.可以在网上下载对饮的版本:https://github.com/elastic/elasticsearch,本次安装的是5.5.3. 首先保证虚拟机上安装了jdk,jdk的版本只是是1.7或以上 ...
- 9.7 Django 书单列表页面
昨天的迭代版本,增加了编辑出版社,编辑列表,增添了返回页面! 具体的看 github : https://github.com/TrueNewBee/pythonDemo 看一下效果图: 整体来说还是 ...
- WCF的简单使用
WCF简单介绍 WCF(windows communication foundation)是微软推出的数据通信的统一编程模型,在WCF有四个主要的关键点: abcd Address(地址):定义服务的 ...
- java中List的toArray方法
把List转换成某种类型的数组,就拿String类型来做例子吧,有以下两种方式: //方法1,使用不带参数的toArray方法 String[] arr1=new String[list.size() ...
- Python:fromkeys()方法
简介 Python 字典(Dictionary) fromkeys() 函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值. 语法 fromkeys()方法语法: ...
- pro 图层 叹号
同事遇到问题,后来他自己探索解决了~~大致记录如下 pro1.4中打开mxd,部分图层前显示叹号.根据arcmap的经验,点击叹号去修复,结果显示 不支持类型数据. 后解决办法:新建pro 的proj ...
- kubernetes实战(十四):k8s持久化部署gitlab集成openLDAP登录
1.基本概念 使用k8s安装gitlab-ce,采用GlusterFS实现持久化(注意PG使用的是NFS存储,使用动态存储重启postgresql的pod后无法成功启动pg,待解决),并集成了open ...
- javaScript错误(一)Cannot call method 'addEventListener' of null
Cannot call method 'addEventListener' of null 原因很简单,JavaScript代码中要引用到DOM对象,但是这个DOM对象在JavaScript执行后才会 ...