java基础

97 阅读6分钟

1:什么是程序

程序是为了模拟现实世界,解决现实的问题而使用计算机语言编写的一系列指令的集合

​ a:系统程序: 如 操作系统 ​ b:应用程序:微信 支付宝 百度地图 美颜

2:java 的发展历程

1995年 由sun公司( 斯坦福大学网络公司 ) 在家电(电子)控制程序 由 james godling(詹姆斯-高林斯)带领团队开始研发一门语言 oak(像树) javahot 浏览器 1996 java1.0 2004 java1.5-->java5 2009 被 oracle 收购 2014 java1.8-->java8

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

3: java 运行机制:

程序常见的运行机制

a: 编译执行 b:解析执行

java 运行机制是介于 编译执行和解析执行之间的: 源码--》字节码 编译 字节码 --》不同平台的 jvm 上去解析执行

3:JVM (java virtual machine) java 虚拟机

4: JRE (java runtime Environment) java的运行环境

5:JDK(java developement kit) java的开发工具

4:jdk 的安装

​ 1:设置 jdk-8u40-windows-x64.exe的兼容性和运行权限 ​ 在安装软件上 : 右键-> 属性 -》兼容性选项卡 ​ 2:双击运行 ​ 3:选择安装路径的时候: 不要选 中文和带特殊符号的路径 ​ 目录结构不要太深和复杂 ​ 一般建议在某盘符一 二级目录即可

我的电脑- 》右键-》高级系统设置 -》环境变量 -》系统环境变量

​ 4:配置环境变量:

   第一种方式:
      配置jdk 的环境变量:
        我的电脑-》右键-》高级系统设置-》环境变量-》
        系统环境变量--》path -》编辑
        新建:C:\Program Files\Java\jdk1.8.0_40\bin
       上移到path的最上面位置
        2:  classPath:  运行字节码程序的位置  默认是当前路径  ./   

  第二种方式:
             1:配置一个  JAVA_HOME:   第一种方式:C:\Program Files\Java\jdk1.8.0_40\
             2:   path :    %JAVA_HOME%\bin

5:类的定义和使用

java application 程序的最小执行单位:class

 class 类名{

           }

java application 入口方法:

 public static void main(String[] args){

              }

6: java 源文件的命名

     注意: 一个 java源文件中可以存在多个 class 类
          但最多只能存在一个 publicclass 类
          如果一个 java源文件中存在一个publicclass 类 那么
          源文件名必须和publicclass 类名保持一致

javac 源文件名 如 javac HelloWorld.java 表示把源文件 HelloWorld.java 编译成字节码文件

java 类名 如 java HelloWorld 表示去执行 HelloWorld类 找 HelloWorld类的入口方法运行

javadoc 源文件名 如 javadoc HelloWorld.java 表示根据 /** 文档注释* / 生成源码的帮助文档

7:类的注释

// 单行注释 /* */ 多行注释

/** 文档注释 */

8: java的输入与输出

输出 : System.out 输出流 System.out.print() System.out.println()

输入:
System.in 输入流 java.util.Scanner Scanner 类是一个控制台

Scanner sc=new Scanner(System.in);
    sc.nextInt()
      .nextFloat()
      .nextDouble()
      ....
     next();        碰到空格就结束不往后取内容
    nextLine();     碰到换行符就结束不往后取内容

9:包 package

package 包名; 包名都是小写 一般是公司的组织机构代码(域名 反写) 如: com.baidu. 作用:和操作系统的文件夹对应的 一般要求把完成某个功能的所有代码放同一个包 可以减少团队开发时候 类的命名冲突问题

定义:package 包名.子包名.xxxx

其他包要使用需要导入这个类: import 包名.子包名.xxxx.类名;
import 包名.子包名.xxxx.*;

10: 程序的构成

​ 程序=数据结构+算法

​ 数据结构 =数据类型 + 变量

​ 算法= 操作符 + 流程控制语句

11: java的变量

变量:存储数据的空间(内存)

a:申明变量 1:数据类型 变量名; 变量名=值 2:数据类型 变量名=值;

标识符的命名规范: 标识符(变量名 类名 方法名 属性名..) 1:构成只能是 : 字母 数字 $ _ 2:首字母不能是:数字 3:不能是java的关键字(都是小写) synchronized (public class static void byte short int long... )也不能是java 的保留字(goto const)

约定: 1:见名知意 name age 2:驼峰式 或 _ 命名 studentName student_name 3:类名 首字母 大写 Person 4:包名全部小写 com.qf 5:方法名 动词 首字母 小写 drowMoney() 6:变量 属性名 名称 首字母 小写 name

12:java的数据类型

1:基本类型(8大基本类型) 2: 引用类型(类 接口 数组) a:整数相关 byte 1个字节 8bit -2^7 到 2^7-1 包装类 :Byte short 2个字节 16bit -2^15 到 2^15-1 包装类 : Short
int 4个字节 32bit -2^31 到 2^31-1 包装类 :Integer long 8个字节 64bit -2^63 到 2^63-1 包装类 :Long b:小数相关(非精确的类型) float 4个字节 32bit 包装类 :Float
-3.4e38 到 -1.4E-45 1.4E-45 到 3.4e38 double 8个字节 64bit -1.4e308 到 1.4e308 包装类 :Double c:字符 char 2个字节 16bit 0- 65535 包装类 :Character char 采取 unicode编码包含全球语言字符集 常见unicode编码 空格: 32 0-9: 48-57
A-Z: 65-90 a-z: 97-122
d:布尔 1个字节 boolean 取值 true false

字母量值 整数默认是 int 字母量值 小数 默认是 double

数据类型的转换: 1:自动转换 a:可以兼容的类型 byte b=10; b:把低的数据类型 赋值高的数据类型 byte b=10; int num=b;

     byte short char  -->int    -> long
  
                  |           |
                  v           v                       
                 float   -> double          

2:强制类型转换 (数据类型) 变量名;
强制类型转换可能产生: 1:数据溢出 int num=128; byte b=(byte)num;
2:精度的丢失 double d1=3.14; int num=(int)d1;

注意:boolean 类型不和其他基本类型做运算也不转换

13:java操作符

1:算术运算

+- * / % 10/3=3 10/3.0=3.33333334 10%3=1
++ --
int a=10; int b=++a; // a=a+1; b=a; a=11 b=11

​ int a2=10; int b2=a2++; // b2=a2 a2=a2+1 b2=10 a2=11

2:比较运算 == != <> > < >= <=

3:逻辑运算 && 与 || 或 !非

A && B AB 同时 true 才能返回true 若Afalse B不需要执行 直接返回 false 短路

A || B A B 同时 false 才能返回false A B只要一个是 true 就可以返回true 若 A true B不需要执行 直接返回 true 短路

4:位运算 转二进制 & 按位与 | 按位或 ^ 异或 不同true << 左移位 n 乘 2^n

、>> 右移位 n 除 2^n

5:三目运算 表达式?返回值1:返回值2

14:java的流程控制语句

1:顺序结构

2:分支结构

a: if else结构分支

    if(条件){
            条件true要执行的操作;
        }
  if(条件){
             条件true要执行的操作;
   }else{
            条件false要执行的操作;
         }
if(条件){
           条件 true 要执行的操作
    }else if(){...}
    ...
else if(){...}
else{
          条件 false 要执行的操作
}

 条件的嵌套   

b: switch分支

switch(变量){ 变量的数据类型:byte short char int jdk1.7和之后的版块可以是 String

     case1:要执行的操作1;  [ break;]
     .....
     case 值n:要执行的操作n;  [ break;]
     default:其他情况
  } 

switch 中 case条件满足后 遇到 break 才能终止运行 所以 一般每个 case后面会配置一个break switch 变量 数据类型: 只能放可以自动转换成 int 的数据类型 byte short char int String(jdk1.7 或之后的版本是支持)

 注意其他的类型:     long float double boolean不可以作为switch的变量参数

3:循环语句 a: while循环 初始变量=值 while(循环的初始条件){ 循环体 }
一般来说 循环体里面都会存在改变循环条件的语句 while 可能执行0次或者死循环(不限次数)

b: 初始变量=值 do{ 循环体 }while(条件);

  do while 至少执行一次

c: for for(初始化语句; 循环条件;改变条件语句){ 循环体 }

JAVA_HOME : 指向jdk的安装目录

​ C:\Program Files\Java\jdk1.8.0_40

path : %JAVA_HOME%\bin

C:\Program Files\Java\jdk1.8.0_40\bin