该篇为正式笔记第一篇,果不其然的会从一些最基础的知识开始.
首先
学一门语言,前提要知道他是干什么的,能用来做什么.
他是前Sun公司于我的生辰1995年推出的一门高级编程语言,java语言是一个革命性的语言,因为他的跨平台性.其跨平台原理在于java虚拟机,java虚拟机到哪,java程序就能运行到哪.他是一个面向对象,安全可靠,与平台无关的编程语言.他能做我们常见的桌面程序,还能做超牛的网上交易系统,同时还可以做出超炫的图像效果等等.
java技术平台具体划分了三种技术架构:
①:javaSE,一个java平台标准版,是java的核心基地,它允许开发和部署在桌面,服务器,嵌入式环境和实时环境中使用的java应用程序,javaSE还包括了支持java web服务开发的类,并未java EE提供了给力的基础.
②:javaEE,一个java平台企业版,他可以帮助开发和部署可移植,健壮,可伸缩且安全的服务端java应用程序.javaEE是在javaSE基础上构建的,它提供web服务组件模型,管理和通信API,可以用来实现企业的面向服务体系结构(SOA)和web应用程序.
③:javaME:一个java平台小型版,他主要为在移动设备和嵌入式设备(比如:电视机顶盒,打印机等)上运行的应用程序提供一个健壮且灵活的环境.基于javaME规范的应用程序只需要编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能等.
java的跨平台性
通过Java语言编写的应用程序在不同的系统平台上都可以运行,只要在需要运行java应用程序的操作系统上先安装一个Java虚拟机(JVM Java Vitrual Machine)即可由JVM来负责Java程序在该系统中的运行
其次
了解了java是干什么的后,就要直接进入主题了,就是来学习掌握他的基础:
变量----
变量的概念:将不确定的数据进行存储,也就是需要在内存中开辟一个空间.
变量的划分:
数值型:其中包括整形的byte(占一个字节),short(两个字节),int(四个字节),long(八个字节)和浮点型的float(四个字节),double(八个字节)
字符型:char(占两个字节),
变量的命名规则:必须以字母,下划线活dollar符号($)开头,其中也只能包括这两个特殊符号,还有就是不能使用java语言的关键字
上面大都是理论,下面实例来,定义变量:
当数据不确定的时候,需要对数据进行存储时就定义一个变量来完成存储动作
数据类型 变量名=初始值;
Int x=4;
Byte b=2;//-128~127
Short s=30000;
Long l=4l;//定义long型时一定要在末尾添加L
Float f=2.3f;//小数默认是double类型,如果想使用float类型,需要在末尾添加f
Double d=34.56;
Char ch=’4’;//char类型占2个字节
Char ch1=’a’;
Char ch2=’+’;
Char ch3=’ ’;
Boolean bo=true;
Boolean bo1=false;
常量----
常量的概念:不能改变的数值,固定的
常量的划分:
整型:其中包括所有的整数,分别以 十进制dec(满是进一(0~10), 十六进制Hex(满十六进一(0~9,A~F用Ox开头表示),还有 八进制oct(满八进一(0~7(用0开头表示)的形式表示.
小数型:其中包括所有的小数,划分为:单精度浮点数和双精度
布尔型:其中只有两个值true和false
字符常量:其中包括一些转义字符等用单引号标识
字符串常量:例如:"Hello World",用双引号来标识
null常量:其中只有一个值,表示对象的引用为空
运算符----
运算符的概念:顾名思义,是在程序运算过程中的一些标志性符号
运算符划分:
算数:数学中常见的一些"*","/","+","-","%"具体如下表:
运算符 | 运算 | 范例 | 结果 |
+ | 正号 | +3 | 3 |
- | 负号 | b=4; -b; | -4 |
+ | 加 | 5+5 | 10 |
- | 减 | 6-4 | 2 |
* | 乘 | 3*4 | 12 |
/ | 除 | 5/5 | 1 |
% | 取模 | 5%5 | 0 |
++ | 自增(前) | a=2;b=++a; | a=3;b=3 |
++ | 自增(后) | a=2;b=a++ | a=3; b=2 |
-- | 自减(前) | a=2;b=--a; | a=1;b=1 |
-- | 自减(后) | a=2;b=a-- | a=1;b=2 |
+ | 字符串相加 | “He”+”110” | “Hello” |
取模小总结:
左边小于右边,结果是左边
左边等于右边,结果是0
右边是1,结果是0
当出现负数时,只看左边,负号在左边结果为负
比较:其中有">","<",">=","==","!="等结果出来要么是true要么是false
运算符 | 运算 | 范例 | 结果 |
== | 相等 | 4==3 | false |
!= | 不等于 | 4!=3 | ture |
< | 小于 | 4<3 | false |
> | 大于 | 4>3 | true |
<= | 小于等于 | 4<=3 | false |
>= | 大于等于 | 4>=3 | false |
instainceof | 检查是否是类的对象 | ‘Hello’instanceof String | ture |
小小实例:
=(等号) 等于 (A1=B1)
>(大于号) 大于 (A1>B1)
<(小于号) 小于 (A1<B1)
>=(大于等于号) 大于或等于 (A1>=B1)
<=(小于等于号) 小于或等于 (A1<=B1)
<>(不等号) 不相等 (A1<>B1)
赋值:就是一个"="号,将右边的赋值给左边.其中要注意一些:"+=""-="*=""/="的操作.例如:a+=20<=>a=a+20
这里注意下在赋值同时涉及到的类型提升:
byte b=3; b=(byte)(b+2); 注意适当要加上强制类型转换
逻辑运算符:
运算符 | 运算 | 范例 | 结果 |
& | AND(与) | false&ture | false |
| | OR(或) | False|ture | true |
^ | XOR(异或) | False^ture | true |
! | Not(非) | !true | false |
&& | AND(短路) | false&&ture | false |
|| | OR(短路) | False||ture | true |
其中主要,注意,双或和或,双与和与的区别.
区别在于使用或('|')无论任何情况,两边都会参与运算,使用双或("||")则,当左边为假时才会判断左边是否为真.如果左边为真了,就直接返回结果为真.不判断右边.
位运算符(主要用于底层运算):
运算符 | 运算 | 范例 |
<< | 左移 | 3 << 2 = 12 à3 * 2 * 2 = 12 |
>> | 右移 | 3 >> 1 = 1 à 3 / 2 = 1 |
>>> | 无符号右移 | 3 >>> 1 = 1 à3 / 2 = 1 |
& | 与运算 | 6 & 3 = 2 |
| | 或运算 | 6 | 3 = 7 |
^ | 异或运算 | 6 ^ 3 = 5 |
~ | 反码 | ~6 = -7 |
对了,还有三元运算符
格式:(条件表达式)?表达式1:表达式2;
如果条件为真,运算后的结果是表达式1;
如果条件为假,运算后的结果是表达式2;
程序的流程控制----
程序的流程控制的概念:其实就是语法结构,编程中的语句
顺序结构:程序从上往下一行一行的执行,中间没有判断和跳转,直到程序结束
循环结构:while,do-while,for
while,特点先判断,后执行
do-whi,特点先执行,再判断
for,特点,先执行初始化部分,再进行判断,然后执行循环体,组后进行迭代部分.通常用于循环次数确定的情况.
选择结构:if,if-else,switch
基本if,可以处理单一活组合条件的情况
if-else,可以处理简单的条件分支情况
多重if,可以处理复杂的条件分支情况
switch,可以处理判断具体数值的选择情况
注意:跳转语句:
breadk:终止某个循环,跳出该循环体只能适用于循环和switch结构.
continue:跳出本次循环,进行下一次循环,还在循环体中,只能用于循环中
数组----(简约概念,具体内容会在后面文章中详细提到)
数组的概念:同一种类型数据的集合.其实就是一个容器.
好处:可以自动给数组中的元素从0开始编号方便操作.
普通数组:语法:数据类型[ ] 数组名= new 数据类型 [数组长度];
多维数组:数据类型[ ][ ] 数组名= new 数据类型 [外层数组长度] [内层数组长度 ];
注意:内存结构,内存主要划分为 栈, 堆, 和方法区
栈:主要用于存储局部变量,当数据使用完后,会自动释放.
堆:对象,存储的地方.同过new建立的实例,用来封装数据,都有默认初始化值,其中有垃圾回收机制.
方法区:也叫做共享区,数据区,内部存储一些随类加载的静态方法或者静态共享数据,其中内部还含有常量池等.
面向对象----(简约概念,具体内容会在后面文章中详细提到)
面向对想概述:将功能封装进对象,强调具备了功能的对象.
特点:封装,继承,多态
封装:不让外部程序随意修改一个类的成员.模块设计追求强内聚(许多功能尽量在类中独立完成,不让外面干预),若耦合(提供给外部尽量少的方法调用)
继承:可提高代码的复用性,简化代码,让类与类之间产生了关系
多态:某一类实物的多种存在形态,可以提高程序的扩展性.