2019-03-15

Java

1.1 Java 历史

1995年由James Gosling
包括:
1.Java SE;
2.Java ME;
3.Java EE;

1.2 特点

1.可移植性

Java可以做到一次编写处处运行,java的运行方式,是在一台称为JVM虚拟机上进行运行的,是通过软件和硬件模拟出来的.对于虚拟机来说,缺点是对程序的性能会有一定的影响,但是随着硬件不断发展,性能的问题可以忽略不记,优点:是可以通过JVM实现跨平台开发

2.解释型语言

Java是一门解释型的语言,对于c/c++程序 java语言存在,执行的程序效率低,速度慢.Java通过在不同的平台上使用解释器,首先先对语法进行解释,之后在运行

3.具有多线程的开发能力

Java语言也是维数不多一种支持多线程处理的语言,通过多线程可以进行并发处理增加程序的执行效率

4.面向对象

面向对象是一种思想,或者可以理解为一种开发标准,随着面向对象的发展,在面向对象的领域里出现了如下的设计思想

面向对象的系统设计

面向对象的程序设计

1.3 class与public class区别

Public class 定义的类名称,必须与文件名称一致,否则程序将无法编译,在一个*.java文件中public class 定义的类名称只能出现一次

Class 定义的类: 文件名称可以与类名称不一致,class定义的类在*.java文件中可以出现多次,在编译的时候文件中出现几个class定义就会编译出来几个class文件

1.4 classpath 路径的设置

在默认情况下JVM加载class文件的路径是通过CLASSPATH设置的,而CLASSPATH默认是在当前路径读取。
如果想要解决CLASSPATH读取的问题,则可以手动设置CLASSPATH路径,设置的语法如下:
SET CLASSPATH=*.class 路径
如果想要设置CLASSPATH路径为当前目录则可以进行如下语法设置
SET CLASSPATH=.

1.5 注释

目的:方便阅读
1 单行注释//

2 多行注释 /**/

3 文档注释/** */

1.6 Java中的标识符

java中的标识符是由字母,数字,_, $ 组成,其中不能重复,不能以数字开头,**不能是java中的关键字(严格限制) **

每一个标识符最好有特殊的意义,studentName

注意:
1.Java中虽然规定了可以使用$符号定义标识符,但是实际上不要去使用,应为该符号存在特殊意义
2.标识符是区分大小写的
3.标识符命名方式:
a.类名使用 UpperCamelCase 风格,必须遵从驼峰形式,首字母大写
b.方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式,首字母小写,其他首字母大写

1.7 Java的关键字

关键字

PS:
1.goto作用为无条件跳转,没有在Java中使用。
2.assert jdk1.4增加的和enum关键字是在jdk1.5增加的内容。

1.8 数据类型(重点)

数据类型分为基本数据类型和引用数据类型
引用数据类型:类,接口,数组
基本数据类型: .........默认值
byte(字节型):0 JVM做了特殊处理,使其可以赋值
short(短整型):0
int(整形):0
long(长整型):0
float(单精度):0.0
double(双精度):0.0
char(字符型):'\u0000'
范例:

/*大小写字母的转换*/
public class TestDemo02
{
    public static void main(String[]args){
        
        char c='A'; //定义一个字符

        int x=c;  //char类型自动转换int类型

        x=x+32;  //把大写字母变为小写字母

        char temp=(char)x;

        System.out.println(temp);
    }
}

注意:在Java中使用的是Unicode编码,不是ASCII编码。

面试题:
Char类型变量中能否保存一个中文,为什么?
能够存储一个中文的,应为java中使用的是uncode编码,一个char是占2个字节

boolean(布尔型):flase

从实际的开发角度如何去选择这些数据类型

Int类型:如果要去定义一个整数就去使用int类型,
整数的默认类型是int类型

double 类型: 做为小数的定义,一般来说就使用double

byte类型: 主要的作用作为数据的传输 IO

boolean:主要用于程序逻辑的操作

long: 使用该类型表示日期,文件的长度

查看int类型的最大值与最小值
integer.MAX_VALUE
integer.MIN_VALUE

1.9 数据类型的转换(重点)

数据类型之间的合法转换

在图中有 6 个实心箭头,表示无信息丢失的转换; 有 3 个虚箭头, 表示可能有精度
损失的转换。

自动类型转换

范围小的数据类型与范围大的数据类型进行操作,会默认转换为范围大的数据类型

强制数据转换

范围大的数据类型想要转换为范围小的数据类型则必须强制执行
注意:对于数据类型的强制转换,转换之前的数据必须是小范围数据能够接收的范围,如果超出接收数据的范围之后则数据依然会出现溢出

2.0 字符串

Java中使用String来定义字符串,它属于一个类(引用数据类型)
注意:
1.任意的数据类型与字符串进行相加操作结果都是为字符串(String)
2.数据类型的默认值在方法中是不起作用的,在方法中定义的数据类型必须给定一个默认值

2.1 运算符

2.1.1 自增与自减

先自增:先加一在进行表达式运算
后自增:先进行表达式运算在加一

2.1.2 逻辑运算符

1.与
2.或
3.非
普通与 与短路与的区别?
首先与操作必须要求所有条件必须为true 整体的结果才为true ,而普通与在进行判断的时候其中如果第一个条件为fasle 后继续判断后续条件(后续条件没有必要判断)

短路与 在进行条件判断的时候,假设第一个条件结果为fasle则后续不在判断(性能提高)

2.1.3 三目运算符

condition ? expression1 : expression2

2.2 程序结构

2.2.1 选择分支结构

2.2.1.1 if语句

语法:if(表达式){
执行语句}else{
执行语句}

2.2.1.2 分支嵌套

语法:if(表达式1){
执行语句1}else if(表达式2){
执行语句2}else if(表达式3){
执行语句3}else{//可有可无
执行语句4}

2.2.1.3 switch语句

switch 语法:
switch(表达式){
case 取值1:
语句块;
break;
case 取值2:
语句块;
break;
case 取值3:
语句块;
break;
default:
语句块4;
break;
}

switch语句规则:
1.表达式的返回值必需是下述几种类型之一:int,byte,char,short,确实的结果,
jdk1.7后支持String;
2.case字句中的取值必需是常量,且所有case字句中的取值应是不同的;
3.default字句是可选的;
4.break语句用来在执行完一个case分支后使程序跳出switch语句块;如果case后面没有写break则直接往下面执行;
5.case后面的执行体可写{}可不写{};

switch与if嵌套
语法:switch(){
case 取值n:
语句块;
if(表达式){...}
break;
default:
语句块;
break;
}

2.3 总结

if vs switch
同:
都是选择分支语句
异:
1.语法不同。
2.语句后的表达式值得类型不同,if语句表达式值得类型是Boolean,switch分支表达式值得类型是byte,short,char,int
枚举,String。
3.适用场景
if:变量的值在某个区间之内。
switch:变量的值是某个定值。

if vs 三目运算符
三目运算符都可以使用if语句实现,反之不成立。

Java 7 switch支持String的实现原理:
这个新特性是在编译器这个层次上实现的。
在编译的过程中,编译器会根据源代码的含义进行转换,不同的Java编译器可能采用不同的方式来转换
比如:如果switch语句中包含一个default语句,就可以转换成if-else语句。而对于复杂的情况(多个case语句),也可以转换成Java 7 之前的语句,只不过使用字符串的哈希值(整数)作为switch语句表达式的值。

小技巧:
在实现分支判断时,一个好的习惯是把匹配成功率更高的判断条件放在前面,提高效率。
在表达式中判断时,尽量拿确定的值跟不确定的值去判断。

2.4 循环语句

2.4.1 while 语句

语法:while(条件表达式){
    //语句块;
}

符合条件:循环继续执行;否则,循环退出
特点:先判断,在执行

2.4.2 do while 语句

语法:do{
    循环操作
}while(循环条件);

特点:先执行,在判断。最少执行一次。

2.4.3 for循环

语法:
for(初始化参数;判断条件;更新循环变量){
    循环体;
}

for循环的六种写法:
1、标准写法
2、表达式1省略,但在外部声明
3、表达式2省略,死循环
4、表达式3省略,但要声明在循环的内部
5、表达式1,3省略,但要声明在循环的外部和内部
6、三个表达式都省略,死循环

2.5 break语句

在循环的执行过程中,可以使用break语句对正在运行的运行进行中断
应用范围:选择结构和循环结构

2.6 continue语句

Continue可以强迫循环语句跳到循环的起始处,当循环程序遇到continue的时候会结束当前的循环,跳到循环的起始处继续运行循环
应用范围:循环结构
注:
a.这两个语句离开应用范围没有意义。
b.这两个语句单独存在后面不跟语句,因为执行不到。
c.continue是结束本次循环,继续下一次循环。
d.标号的出现可以让这两个语句作用于指定范围

2.7 总结

1.变量有自己的作用域,对于for:如果将用于控制循环的增量定义在for语句中。那么该变量只在for语句内有效。for语句执行完毕,该变量在内存中被释放。
2.for和while可以互换,如果需要定义循环增量,for更合适。
是么时候用循环结构?
当某些语句执行很多次,用循环结构。

3.0 方法

定义:就是实现一段特定功能的代码块。提高程序的复用性和可读性

语法:
访问权限修饰符[其他的修饰符 如static] 返回值类型 方法名(参数类型1 形参1,参数类型2 形参2,参数类型3 形参3,...)//形参列表
{
//方法体
return 返回值;
}

3.1 方法的重载

定义:在类中可以创建多个相同名字(功能相同)的方法,但具有不同的参数和定义。返回值不能作为重载的条件。

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

推荐阅读更多精彩内容

  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,511评论 0 4
  • 第01章 JAVA简介第02章 基础语法第02章 递归补充第03章 面向对象第04章 异常处理第05章 数组第06...
    顺毛阅读 514评论 0 1
  • 1. 条件判断语句 1.1 if-else语句 语法if(条件){ /* 如果表达式为真将执行的语句 */}e...
    zhangjvjv阅读 173评论 0 0
  • 夏日的中午,天空晴朗如一张蓝纸,几片轻薄如纱般的白云,像被阳光晒化了似的,随风缓缓浮游着。火红的太阳像燃烧着的...
    小虫啃书阅读 453评论 0 1
  • 收集一些Linq表达式中的一些比较常用的写法,希望能给大家工作当中带来一些便利。 1. Where子句条件过滤结果...
    小明yz阅读 818评论 3 17