Java学习笔记

一、JAVA简介

1995年 Sun公司  java之父 詹姆斯·戈士林  OAK->JAVA 

   Java 版本

      Sun ONE(Open Net Environment) 体系

  •            Java SE 标准版 桌面应用程序的开发
  •            Java EE 企业版 开发企业级分布式的网络程序
  •            Java ME 应用于嵌入式系统开发

   Java API文档 (JDK文档)

      Application Programming Interface 应用程序编程接口

      该文档记录了Java中海量的API

二、特性

   分布性

操作分布:在多个不同的主机上布置相关操作

数据分布:将数据分别存在不同网络的不同主机上,凭借URL

   可移植性

具有与体系结构无关的特性,java的类库中也实现了针对不同平台的接口,使得类库也可以移植

   解释型 ->“一次编写,到处运行”(跨平台性) 

运行Java程序需要解释器,任何移植了Java解释器的都可以用Java字节码进行解释运行,字节码独立于平台

Java学习笔记_第1张图片

   安全性

删除了指针和内存释放等语法,有效地避免了非法操作内存。

java程序代码要经过 代码校验 指针校验 等很多测试步骤才能运行

   健壮性

Java会检查程序在 编译和运行 的错误 并 消除错误

类型检查也能帮助用户检查开发早期出现的错误

   多线程

使应用程序在同一时间并行执行多项任务,相应的同步机制保证不同线程间正确的共享数据。

更好的交互能力和实时行为

   高性能

java编译后的字节码在解释器中运行,较多数交互式应用程序提高了许多。

另外,字节码可以在程序运行时被翻译成特定平台的机器指令,进一步提高速度

   动态

可以动态调整库中的方法和增加变量,而客户端不需要任何修改,在Java中进行动态调整是非常简单和直接的

三、应用领域

  • 桌面应用系统开发
  • 嵌入式系统开发
  • 电子商务应用
  • 企业级应用开发
  • 交互式系统开发
  • 多媒体系统开发
  • 分布式系统开发
  • Web应用系统开发

 

 

四、JDK、JRE、JVM名词辨析

JDK=JRE+开发工具

JRE=JVM+类库

JDK>JRE>JVM

 

五、JDK安装、环境变量配置

安装JDK会先后弹出下列三个安装程序

1.jdk

2.独立的jre

3.JavaFX SDK(不需要装)

为什么要配置环境变量

命令行中输入命令都是在当前文件夹下操作 如果没有找到 会去Path中再寻找 找不到就报错

这时候就需要配置好java的路径 就可以在命令行任意位置使用java命令

1.我的电脑 右键 属性 高级 环境变量

新建三个系统变量

JAVA_HOME      C:\Java\jdk1.8.0_191

CLASSPATH      .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

PATH                   %JAVA_HOME%\bin;

2.验证JDK环境变量是否配置成功的三个命令

Java

Javac

Java -version

 

六、dos命令行命令

help 列出所有命令

dir 列出当前文件夹下文件

cd +文件夹 进入指定文件夹

cd..向上一级文件夹

cd\ 回到根目录下

md +文件夹名 新建文件夹

rd +文件夹名 删除空文件夹

del +文件名 删除文件

exit 退出dos

七、Java语言基础

public class HelloJava{
    public static void main(Strings args[]){
        
    }
}

Java严格区分大小写

1.基本数据类型

总共8种基本数据类型 (注意String不算是基本数据类型)

具体可以看下图 红色部分是需要注意的

Java学习笔记_第2张图片

其中unicode编码字符包含65536个 几乎可以处理所有国家的文字

关于转义字符我拍了书上的解释 和表格

Java学习笔记_第3张图片

布尔类型没什么好讲的 true或false 需要注意的是不可以和整数类型转换

2.标识符--命名规则

四种字符

  • 字母
  • 下划线 ‘_'
  • 美元符号 ’$'
  • 数字

两个规则

  • 第一个字符不能是数字
  • 不能是Java的关键字

所以只要是四种字符组成的且符合两个规则的标识符都是可以作为名字的

使用规范:

表示类名首字母大写

表示方法和变量的表示符-“驼峰原则” goodMan

表示常量全部字母大写 PI

3.关键字

Java学习笔记_第4张图片

图片来源:https://www.cnblogs.com/chenglc/p/6922834.html

4.声明常量

final关键字 说明只能赋值一次 通常用大写字符

成员变量(全局变量)在定义时就必须赋值

局部变量可以先定义 后赋值

5.变量的有效范围

Java学习笔记_第5张图片

实例变量就是正常的成员变量,定义在一个类里面 从属于具体的实例对象

静态变量就是实例变量加上关键字 static 从属于类

     静态变量的有效范围可以跨类 甚至可以达到整个应用程序 还可以用“类名.静态变量”的方式在其他类使用

局部变量就是定义在块语句或者方法内部的变量 从属于方法

局部变量定义后不赋值无法使用

但是实例变量(成员变量)有定义后有初始化 具体如下

局部变量和成员变量名字相同时 优先使用方法内的局部变量

6.运算符

赋值运算符 = (优先处理右边的表达式结果)(x=y=z=5这种赋值也是可以的 一般不这样做)

5种算数运算符 + - * / %

> < >= <= != ==6种比较运算符

3种逻辑运算符 &&(&) ||  !

自增自减运算符 a++ ++a a-- --a

位运算符 &按位与    |按位或   ~按位取反  ^按位异或(相同为0 相反为1) <<左移  >>右移 <<<无符号左移  >>>无符号右移

三目运算符  条件式?值1:值2

关于运算符的执行顺序 可以参考下图 推荐用()来限定顺序

Java学习笔记_第6张图片

八、流程控制

1.复合语句

{ }

2.条件语句

if

if...else

if...else if

switch

3.循环语句

while

do...while

for

foreach (遍历数组)

九、String类

常见构造方法

1.String s="student";

2.String s=new String(char a[]);

               =new String(char a[],int offset,int length)

连接字符串用‘+’

如果连接其他的数据类型 系统会自动调用 toString()方法

eg:    System.out.print("我每天花费"+booktime+"小时看书“);

常用方法
String str="We are students";

int length() 获取字符串的长度

int indexOf(String s) 返回字符或者字符串s在str中首次出现的索引位置 如果没有则返回-1

int lastIndexOf(String s) 返回字符或者字符串s在str中最后一次出现的索引位置 如果没有则返回-1(如果s为空字符串“” 返回与length()相同 都是字符串长度)

char charAt(int index) 返回指定索引index的字符

String substring(int beginIndex) 返回从指定索引位置到结尾的子串

String substring(int beginIndex,int endIndex) 返回从指定索引位置到指定索引位置的子串

String trim() 返回去除前导空格和尾部空格的子串 “  java   class   “ -----> "java   class"

boolean startWith(String s) 返回str是否以s为前缀的布尔值

boolean endWith(String s) 返回str是否以s为后缀的布尔值

str == otherStr 返回str是否和otherStr具有相同的地址的布尔值

boolean equals(String otherStr) 返回str是否和otherStr具有相同的字符和长度的布尔值

boolean equalsIgnoreCase(String otherStr) 忽略大小写 返回str是否和otherStr具有相同的字符和长度的布尔值

 

 

JAVA中间件

中间件就是在大型网站中,帮助各子模块间实现互相访问,消息共享或统一访问等功能的软件产品。常见的有: 

  • 远程服务框架中间件:主要解决各子模块之间互相访问的问题。 阿里巴巴的开源分布式服务框架Dubbo
  • 消息队列中间件:主要解决各子模之间消息共享的问题。 Apache的ActiveMQ
  • 数据访问中间件:用于简化应用层对数据层的访问。 JDBC
     

 

注:部分资料来自于《JAVA从入门到精通》第三版 清华大学出版社

仅用于个人学习总结

你可能感兴趣的:(Java学习笔记)