芯灵思SinlinxA33开发板安卓开发-java语言基础

Java基础语法

1.计算机语言和java 简介

2.Jdk安装与环境搭建、编写HelloWorld

3.标识符与关键字

4.Java的数据类型

5.变量和常量

6.运算符与表达式

7.流程控制(条件语句、循环语句、流程控制中的Break和continue)

8.数组

9.枚举

Java进阶

封装

1.从抽象到类

2.构造方法与对象的创建

3.参数传值

4.实例成员和类成员

5.方法重载

6.this关键字

7.包

8.import语句

9.访问权限

继承

1.子类与父类

2.子类的继承性

3.成员变量的隐藏和方法重写

4.super关键字

5.对象的上转型对象

6.继承与多态

7.abstract类和abstract方法

多态

1.接口的声明与使用

2.接口变量与回调机制

3.接口与多态

4.abstact类与接口的比较

Jave深入

1.内部类与异常类

2.Java常用实用类

3.输入输出流

4.集合与泛型

5.Java多线程机制

初识java

Java诞生

在Java诞生之前已经出现了许多优秀的编程语言,如大家所熟悉的C语言和C++语言等,那么是什么原因导致了Java的诞生呢?Java语言相对于其他语言来说到底又有着怎样的特殊优势呢?

Java语言相对于其他语言的最大优势就是所谓的平台无关性,即跨平台性,这也是Java最初风靡全球的主要原因。

无论哪种变编程语言编写的应用程序都需要经过操作系统和处理器来完成程序的运行,因此这里所指的平台是由操作系统(OS)和处理器(CPU)所构成。与平台无关是指软件的运行不因操作系统、处理器的变化导致发生无法运行或者出现运行错误。

平台最终识别并且执行的是一种由0和1组成的序列代码,我们称之为机器指令。相同的CPU和不同的操作系统所形成的平台的机器指令可能也是不同的,因此,每种平台都会形成自己独特的机器指令。例如,某个平台可能用8位序列代码10001111表示一次加法操作,以10100000表示一次减法操作,而另外一个平台可能用8位序列代码10101010表示一次加法操作,以10010011表示一次减法操作。

c+

+


Java

Java语言和其他语言相比,最大的优势就是它的平台无关性,这是因为Java可以在平台之上再提供一个Java运行环境,该Java运行环境由Java虚拟机(JVM)、类库以及一些核心文件组成。Java虚拟机的核心是所谓的字节码指令,即可以被Java虚拟机直接识别、执行的一种由0和1组成的序列代码。字节码并不是机器指令,因为它不和特定的平台相关,不能被任何平台直接识别和执行。Java针对不同平台提供的Java虚拟机的字节码指令都是相同的,如所有的虚拟机都将11110000识别、执行为加法操作。


JDK的安装和配置

1、下载并且安装JDK

2、配置系统环境变量

Hello world

简单:如果同学们学过C++语言,就会感觉Java眼熟,因为Java中许多基本语句的语法和C++是一样的,像常用的循环语句、控制语句等和C++几乎相同。需要注意的是,Java和C++时两种完全不同的语言,各有各的优势,将会长期并存下去。如果从语言的简单性方面来看,Java要逼C++简单,C++中许多容易混淆的感念,或者被Java弃之不用了,或者以一种更清楚更容易理解的方法实现,例如Java中不再有指针的概念。

面向对象:基于对象的编程更加符合人的思维模式,使人们更容易解决复杂的问题,Java就是一种面向对象的编程语言

多线程:Java的特点之一就是内置对多线程的支持。多线程允许同时完成多个任务。实际上多线程使人产生多个任务在同时执行的错觉,因为目前的计算机的处理器在同一时刻只能执行一个线程,但处理器可以在不同的线程之间快速的切换,由于处理器的速度非常快,远远超过了人接收信息的速度,所以给人的感觉好像是多个线程在同时执行。C++没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序的设计。

安全:当准备从网络上下载一个程序时,最大的担心是程序中含有恶意的代码,会试图读取或者删除本地计算机上的一些重要文件。当使用支持Java的浏览器时,可以放心的运行Java Applet程序,不必担心病毒的感染。Java Applet程序由浏览器内置的Java运行环境负责解释执行,浏览器内置的Java运行环境不允许Java Applet程序访问当前浏览器上下文环境以外的其他部分。

动态:在通过了后面的学习之后,同学们就会发现Java程序的基本组成单元就是类,有些类是自己编写的,有些是从类库中引入的,而类又是运行时动态装载的,这就使得Java可以在分布式环境中动态的维护程序以及类库。而C/C++编译时就将函数库或者类库中被使用的函数、类同时生成机器码,那么每当类库升级以后,如果想要具有类库提供的新功能,程序就必须重新修改和编译

标识符和关键字

标识符:用来标识类名、变量名、方法名、类型名、数组名、文件名等等的有效字符序列称之为标识符。简单的说,标识符就是一个名字。以下是Java关于标识符的语法规则:

1、标识符由字母、下划线、美元符号和数字组成,长度不受限制。

2、标识符的第一个字符不能是数字字符。

3、标识符不能是关键字。

4、标识符不能是true、false和null(尽管true、false和null不是Java的关键字)

例如:Hello_java、Hello_12$、$23Boy

需要特别注意的是,标识符中的字母是区分大小写的,hello和Hello是不同的标识符。

Java语言使用Unicode标准字符集,Unicode字符集由UNICODE协会管理并接受其技术上的修改,最多可以识别65563个字符,Unicode字符集的前128个字符刚好是ASCII码表。Unicode字符集还不能覆盖全部历史上的文字,但大部分国家的“字母表”的字母都是Unicode字符集中的一个字符,如汉字中的“你”字就是Unicode字符集中的第20320个字符。Java所谓的字母包括了世界上大部分语言中的“字母表”,因此Java所使用的字母不仅包括通常的拉丁字母a,b,c等,也包括汉语中的汉字、日文的片假名和平假名、朝鲜文、俄文、希腊字母以及其他许多语言中的文字。

关键字:关键字就是Java语言中已经被赋予了特定意义的一些单词。不可以把关键字作为标识符来用,以下就是Java的关键字:

访问控制

private 私有的   protected 受保护的   public 公共的

类、方法和变量修饰符:

abstract 声明抽象     class 类          extends 扩允,继承 final 终极,不可改变的    implements 实现

interface 接口          native 本地     new 创建              static 静态                   strictfp 严格,精准

synchronized 线程,同步                 transient 短暂       volatile 易失

程序控制语句:

break 跳出循环     continue 继续       return 返回    do 运行      while 循环     if 如果

else 反之               for 循环                instanceof 实例               switch 开关

case 返回开关里的结果                      default 默认

错误处理:

try 捕获异常      catch 处理异常      finally 有没有异常都执行      throw 抛出一个异常对象

throws 声明一个异常可能被抛出     assert 断言

包相关:

import 引入       package 包

基本类型:

boolean 布尔型     byte 字节型       char 字符型       double 双精度       float 浮点

int 整型                long 长整型       short 短整型      null 空                  true 真

false 假                 enum 枚举

变量引用:

super 父类,超类     this 本类    void 无返回值

关键字(51)+保留字(const,goto)共53个

基本数据类型

逻辑类型:常量:true,false。

变量:使用关键字boolean来声明逻辑变量,声明时也可以赋给初值,

例如:boolean x,ok=true,关闭=false;

整数类型:1.int 型

常量:123,6000(十进制),077(八进制),0x3ABC(十六进制)。

变量:使用关键字int来声明int型变量,声明时也可以赋给初值,

例如:int x= 12,平均=9898,jiafei;

对于int型变量,内存分配给4个字节(byte),占32位。

2.byte型

常量:Java中不存在byte型常量的表示法,但可以把一定范围内的int型常量赋值给byte型变量。

变量:使用关键字byte来声明byte 型变量

例如:byte x= -12,tom=28,漂亮9;

对于byte型内存分配给1个字节,占8位。

3 .short 型

常量:和byte型类似,Java中也不存在short型常量的表示法,但可以把一定范围内的int型常量赋值给short型变量。

变量:使用关键字short来声明short型变量

例如:short x=12,y=1234;

对于short型变量,内存分配给2个字节,占16位。

4. long 型

常量:long型常量用后缀L来表示,例如108L(十进制),07123L(八进制)、0x3ABCL(十六进制) 。

变量:使用关键字long来声明long型变量,

例如:long width=12L,height=2005L,length;

对于long型变量,内存分配给8个字节,占64位。


字符类型:1. 常量:‘A’,‘b’,‘?’,‘!’,‘9’,‘好’,‘\t’,‘き’,‘モ’等,即用单引号扩起的Unicode表中的一个字符。 

2. 变量:使用关键字char来声明char型变量,

例如:char ch=‘A’,home=‘家’,handsome=‘酷’;

对于char型变量,内存分配给2个字节,占16位。

3. 转意字符常量:有些字符(如回车符)不能通过键盘输入到字符串或程序中,就需要使用转意字符常量,

例如:\n(换行),\b(退格),\t(水平制表), \‘(单引号),\“(双引号),\(反斜线)等。

4. 要观察一个字符在Unicode表中的顺序位置,可以使用int型显示转换,如(int)'a'或int p='a'。

5. 如果要得到一个0~65536之间的数所代表的Unicode表中相应位置上的字符必须使用char型显示转换。

浮点类型:1. float型

常量:453.5439f,21379.987F,231.0f(小数表示法),2e40f(2乘10的40次方,指数表示法)。需要特别注意的是:常量后面必须要有后缀“f”或“F”。

变量:使用关键字float来声明float型变量,

例如:float x=22.76f,tom=1234.987f,weight=1e-12F;

精度:float变量在存储float型数据时保留8位有效数字,实际精度取决于具体数值。

对于float型变量,内存分配给4个字节,占32位。

 2. double 型

常量:2389.539d,2318908.987,0.05(小数表示法),1e-90(1乘10的-90次方,指数表示法)。对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。

变量:使用关键字double来声明double型变量,

例如:double height=23.345,width=34.56D,length=1e12;

对于double型变量,内存分配给8个字节,占64位。

精度:double变量在存储double型数据时保留16位有效数字,实际精度取决于具体数值。

数据转换:Java中数据的基本类型(不包括逻辑类型)按精度从“低”到“高”排列:

byte  short  char int  long  float  double 


★当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。例如:

    float x=100; 


★当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。显示转换的格式:(类型名)要转换的值;

  例如

    int x=(int)34.89; 


★当把一个int型常量赋值给一个byte和short型变量时,不可以超出这些变量的取值范围,否则必须进行类型转换运算;例如,常量128的属于int型常量,超出byte变量的取值范围,如果赋值给byte型变量,必须进行byte类型转换运算(将导致精度的损失),如下所示:

     byte a=(byte)128; 


★另外一个常见的错误就是把一个double型常量赋值给一个float型变量时没有进行强制转换,如下所示:

     float x=12.4; 

输入和输出数据:Java中数据的基本类型(不包括逻辑类型)按精度从“低”到“高”排列:

byte  short  char int  long  float  double 


★当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。例如:

    float x=100; 


★当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。显示转换的格式:(类型名)要转换的值;

  例如

    int x=(int)34.89; 


★当把一个int型常量赋值给一个byte和short型变量时,不可以超出这些变量的取值范围,否则必须进行类型转换运算;例如,常量128的属于int型常量,超出byte变量的取值范围,如果赋值给byte型变量,必须进行byte类型转换运算(将导致精度的损失),如下所示:

     byte a=(byte)128; 


★另外一个常见的错误就是把一个double型常量赋值给一个float型变量时没有进行强制转换,如下所示:

     float x=12.4; 

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容