1java基础

1.java特性 详细解读

Java语言_小沐CA-CSDN博客java

(1)Easy:Java的语法比C++的相对简单,另外一个方面就是Java能使软件在很小的机器上运行,基础解释其和类库的支持的大小约为40kb,增长基本的标准库和线程支持的内存须要增长125kb.c++

小巧:因为Java的设计是要在小的计算机上运行,做为一种编程语言来讲其系统是相对较小的。它能有效地在4MB以上RAM的PC机上运行Java翻译器只占用几百KB。这种翻译器对Java的平台无关性和可移植性是可靠的。因为Java很小,它对内存很小的计算机,如基于Java的PC机,以及电视机、烤箱、电话机及家用计算机等,是很理想的。程序员

(2)分布式:Java带有很强大的TCP/IP协议族的例程库,Java应用程序可以经过URL来穿过网络来访问远程对象,因为servlet机制的出现,使Java编程很是的高效,如今许多的大的web server都支持servlet.web

(3)OO:面向对象设计是把重点放在对象及对象的接口上的一个编程技术.其面向对象和C++有不少不一样,在与多重继承的处理及Java的原类模型.算法

(4)健壮特性:Java采起了一个安全指针模型,能减少重写内存和数据崩溃的可能型。Java编译器可以检测许多在其余语言中仅在运行时才可以检测出来的问题。异常处理机制:java把c++里面不少警告变成错误 ,这样设计的原则是为了让劣质代码不能写出来。异常的3个种类 ,检查异常,运行时异常,错误。对于可能出现异常的代码,有两种处理办法:第1、在方法中用try...catch语句捕获并处理异常,catach语句能够有多个,用来匹配多个异常。第2、对于处理不了的异常或者要转型的异常,在方法的声明处经过throws语句抛出异常。spring

(5)安全:Java用来设计网路和分布系统,这带来了新的安全问题,Java能够用来构建防病毒和防攻击的System.事实证实Java在防毒这一方面作的比较好.Java没有指针。编程

(6)中立体系结构:Java编译其生成体系结构中立的目标文件格式能够在不少处理器上执行,编译器产生的指令字节码(Javabytecode)实现此特性,此字节码能够在任何机器上解释执行.设计模式

跨平台性:跨平台的原理是:Java代码经过编译变成一个叫字节码的文件,它的格式是.class,能够被虚拟机JVM运行,能够看做现实中的翻译官,把字节码翻译给其余平台,实现代码在其余平台的运行,在不一样的平台有不一样的JVM。JVM能够理解成一个可运行Java字节码的虚拟计算机系统,它有一个解释器组件,能够实现Java字节码和计算机操做系统之间的通讯。数组

编译和解释性:Java编译程序生成字节码文件,而不是一般的机器码(即二进制)。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地“搬运”程序到不一样的平台和环境中。在一个解释性的环境中,程序开发的标准"连接"阶段大大消失了。若是说Java还有一个连接阶段,它只是把新类装进环境的过程,它是增量式的、轻量级的过程。所以,Java支持快速原型和容易试验,它将致使快速程序开发。这是一个与传统的、耗时的"编译、连接和测试"造成鲜明对比的精巧的开发过程。浏览器

(7)可移植性:Java中对基本数据结构类型的大小和算法都有严格的规定因此可移植性很好.

(8)多线程:Java处理多线程的过程很简单,Java把多线程实现交给底下操做系统或线程程序完成.因此多线程是Java做为服务器端开发语言的流行缘由之一

(9)Applet和servlet:可以在网页上执行的程序叫Applet,须要支持Java的浏览器不少,而applet支持动态的网页,这是不少其余语言所不能作到的。

(10)GC垃圾回收[Java GC]Java垃圾回收_HaveFerrair的博客-CSDN博客  GC又叫垃圾回收器,再也不使用的内存空间应当进行回收,在C/C++等语言中,由程序员负责回收无用内存,Java语言消除了程序员回收无用内存空间的责任。JVM提供了一个系统线程,用于跟踪存储空间的分配状况,检查并释放那些能够被释放的存储空间。垃圾回收器在Java程序运行过程当中自动启用,程序员没法精确控制和干预。

(11)快速:Java比典型的脚本语言大为有效,但它比C慢20倍。这对大多数应用是可接受的。不久的未来,代码生成器就可供利用了,这将使Java程序几近于用C或C++编写的程序那么快。

高性能:Java是一种先编译后解释的语言,因此它不如全编译性语言快。可是有些状况下性能是很要紧的,为了支持这些状况,Java设计者制做了"及时"编译程序,它能在运行时把Java字节码翻译成特定CPU(中央处理器)的机器代码,也就是实现全编译了,Java字节码格式设计时考虑到这些"及时"编译程序的须要,因此生成机器代码的过程至关简单,它能产生至关好的代码。

类库丰富:Java提供了不少丰富的内置类库,经过这些类库,能够简化开发者的程序设计工做,简化操做,同时缩短了项目开发时间

(12)可拓展性继承、多态动态绑定

2.dos命令入门

dir 显示当前目录文件

md 建立目录

rd 删除目录

cd 切换目录 能够是绝对目录或者相对目录

cd .. 切换到上一级目录

cd \ 切换到根目录

cls 清屏

del 删除文件

exit 退出dos界面

ipconfig 显示ip相关配置

3.Java注释

单行注释 //

多行注释 /*  */

doc注释 /**   */

4.阿里巴巴开发手册命名练习

练习稍后再作。

1. 【强制】 代码中的命名均不能如下划线或美圆符号开始,也不能如下划线或美圆符号结束反例: _name / __name / $Object / name_ / name$ / Object$

2. 【强制】 代码中的命名严禁使用拼音与英文混合的方式,更不容许直接使用中文的方式。 说明:正确的英文拼写和语法可让阅读者易于理解,避免歧义。注意,即便纯拼音命名方式 也要避免采用。 正例: alibaba / taobao / youku / hangzhou 等国际通用的名称,可视同英文。 反例: DaZhePromotion [打折] / getPingfenByName() [评分] / int 某变量 = 3

3. 【强制】类名(以及接口名)使用 UpperCamelCase 风格,必须听从驼峰形式,但如下情形例外:DO / BO / DTO / VO / AO 正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion 反例:macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion

4. 【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须听从驼峰形式。 正例: localValue / getHttpMessage() / inputUserId

5. 【强制】常量命名所有大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。 正例: MAX_STOCK_COUNT 反例: MAX_COUNT

6. 【强制】抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾测试类命名以它要测试的类的名称开始,以 Test 结尾。

7. 【强制】中括号是数组类型的一部分,数组定义以下:String[] args; 反例:使用 String args[]的方式来定义。

8. 【强制】POJO 类中布尔类型的变量,都不要加 is不然部分框架解析会引发序列化错误。 反例:定义为基本数据类型 Boolean isDeleted;的属性,它的方法也是 isDeleted(),RPC框架在反向解析的时候,“觉得”对应的属性名称是 deleted,致使属性获取不到,进而抛出异常。

9. 【强制】包名统一使用小写,点分隔符之间有且仅有一个天然语义的英语单词包名统一使用 单数形式,可是类名若是有复数含义,类名可使用复数形式。 正例: 应用工具类包名为 com.alibaba.open.util、类名为 MessageUtils(此规则参考 spring 的框架结构)

10. 【强制】杜绝彻底不规范的缩写,避免望文不知义。 反例: AbstractClass“缩写”命名成 AbsClass;condition“缩写”命名成 condi,此类 随意缩写严重下降了代码的可阅读性。

11. 【推荐】若是使用到了设计模式,建议在类名中体现出具体模式。 说明:将设计模式体如今名字中,有利于阅读者快速理解架构设计思想。 正例:public class OrderFactory; public class LoginProxy; public class ResourceObserver;

12. 【推荐】接口类中的方法和属性不要加任何修饰符号(public 也不要加),保持代码的简洁性,并加上有效的 Javadoc 注释尽可能不要在接口里定义变量,若是必定要定义变量,确定是与接口方法相关,而且是整个应用的基础常量。 正例:接口方法签名:void f(); 接口基础常量表示:String COMPANY = "alibaba"; 反例:接口方法定义:public abstract void f(); 说明:JDK8 中接口容许有默认实现,那么这个 default 方法,是对全部实现类都有价值的默 认实现。

13. 接口和实现类的命名有两套规则: 1)【强制】对于 Service 和 DAO 类,基于 SOA 的理念,暴露出来的服务必定是接口,内部的实现类用 Impl 的后缀与接口区别。 正例:CacheServiceImpl 实现 CacheService 接口。 2)【推荐】若是是形容能力的接口名称,取对应的形容词作接口名(一般是–able 的形式)。 正例:AbstractTranslator 实现 Translatable。

14. 【参考】枚举类名建议带上 Enum 后缀枚举成员名称须要全大写,单词间用下划线隔开。 说明:枚举其实就是特殊的常量类,且构造方法被默认强制是私有。 正例:枚举名字:DealStatusEnum,成员名称:SUCCESS / UNKOWN_REASON。

15. 【参考】各层命名规约: A) Service/DAO 层方法命名规约 1) 获取单个对象的方法用 get 作前缀。获取多个对象的方法用 list 作前缀。 3) 获取统计值的方法用 count 作前缀。 4) 插入的方法用 save(推荐)或 insert 作前缀。 5) 删除的方法用 remove(推荐)或 delete 作前缀。 6) 修改的方法用 update 作前缀。 B) 领域模型命名规约 1) 数据对象:xxxDO,xxx 即为数据表名。 2) 数据传输对象:xxxDTO,xxx 为业务领域相关的名称。 3) 展现对象:xxxVO,xxx 通常为网页名称。 4) POJO 是 DO/DTO/BO/VO 的统称,禁止命名成 xxxPOJO

5.C语言和Java数据类型对比

数据类型 C语言大小(32位系统) Java大小(可移植性,跨平台大小不变)
byte   1字节
char 1字节 2字节
short 2字节 2字节
int 4字节 4字节
float 4字节 4字节
long 4字节,longlong8字节 8字节
double 8字节 8字节
bool   boolean,1位

 

6.练习

  

 b1和b2是byte类型,java中进行计算时候将他们提高为int类型,再进行计算,b1+b2计算后已是int类型,赋值给b3,b3是byte类型,类型不匹配,编译不会经过,须要进行强制转换。 Java中的byte,short,char进行计算时都会提高为int类型。

 

 

 java中byte类型为一个字节,表示的范围是[-128,127],此时越界。

 

 强制转换为byte类型时,因为java采用补码方式存储数据,将32位的int转化成8位的byte省略前24位(0),130的最后8位是10000010,补码转换成原码须要首位不变,其余位翻转最后加1,即11111101+1,即11111110=-126

7.变量/常量

 对于变量(声明在方法内的变量) 在第一次使用以前 必须进行初始化(赋值)

​ 变量的初始化:在声明时初始化 在声明以后使用以前进行初始化

​ 变量的本质:是内存中一块存储单元

​ 常量:常量能够在声明的同时赋值 或者在声明以后赋值 可是不管什么时候赋值 都只能赋值一次,也是内存中一块区域

​ 常量除过咱们所说的使用final修饰的变量 字面常量 2,5,a ,b “aaa”

8.Java保留字:goto和const

保留字是指在其余语言中的关键字,目前java尚未将其做为关键字使用,但之后可能使用,避免形成错误。

9.Java命名规则

标识符能够用数字、字母、汉字、下划线、美圆符号表示。数字不能做为开头。不能包含Java的保留字和关键字。命名的原则是见名知意。

相关文章
相关标签/搜索