zoukankan      html  css  js  c++  java
  • 基础笔记

    l  Java简介

    l  Java开发环境配置

    l  第一个HelloWorld程序

    l  常量,变量,数据类型

    l  运算符和表达式

    一、             java简介、java相关知识及术语

    1. 简介
    2. JavaSE:Java Platform,Standard Edition(Java平台标准版)

         JavaEE:  Java Platform,Enterprise Edition(Java平台企业版)

    JavaME:  Java Platform,Micro Edition(Java平台微型版)

    1. JDK: Java Development Kit(Java开发工具包)

    JRE: Java Runtime Environment(Java运行时环境)

    JVM: Java Virtual Machine(Java虚拟机)。

     

     

     

    JVM(java虚拟机)

       

     

     

    JRE

           
       

    java核心类库

       

    JDK

    java开发工具(包括javac、java、javadoc等等)

               
     

    java基础类库

         

    二、            Java开发环境搭建:

    下载、安装JDK——>配置环境变量

    1. java开发环境配置步骤:

    PATH:   D:Javajdk1.8.0_65in;//在path变量值前面加上

    (jdk1.5以后可以不用配置classpath)

    1. 在命令窗口键入java -version,查看jdk版本

    javac  编译

    java  运行

    1. Java开发工具

    文本编辑器:记事本、editplus、notepad++、sublime_text …

    集成开发环境:eclipse、intellji…

    三、            第一个程序

    1) Java源程序的结构:最小运行单位是类。

    2) class——关键字

    3) 类名,类的命名规范(首字母大写,多个单词时,后续单词首字母也大写,不允许用保留字)。     

    4) main——程序的入口,程序必须有main方法。

    5) 语句使用“;”作为结束(英文字符)。

    四、            Java程序开发步骤:

    1) 通过文本编辑器中编写java代码,将文件名的后缀改为.java文件

    2) 调用javac.exe对.java文件进行编译,生成字节码文件(.class文件)

    3) 调用运行工具java.exe对.class文件进行解释执行

    不同平台的JVM是不同的,它们面向字节码文件的接口是相同的JVM的不跨平台性实现了java语言的跨平台性。

    五、           Java注释:

    单行注释://,注释内容从//开始到本行结束

    多行注释:/*注释内容*/,在需要长篇注释时,可用多行也可用多个单行注释,多行注释不能嵌套。

    文档注释:/** */,可以生成doc文档

    六、            数据类型、常量、变量

    1. 数据类型

    1) 基本数据类型,又称为源生数据类型

    2) 引用数据类型

    基本数据类型:

    整数型:

                   byte        字节       1字节    -27~27-1

                   short  短整型      2字节  -215~215-1

                   int          整形       4字节    -231~231-1   21亿多

                   long       长整型   8字节    -263~263-1

            浮点类型:

                   float              单精度   4字节

                   double    双精度   8字节

            字符型:

                   char        字符       2字节   

            布尔类型:

                   boolean  布尔      1字节    true/false

    1. 数据类型取值范围

    0111 1110

    0*20+1*21

                  13.26

    char:’a’ ‘1’ ‘,’ ‘我’  ASII   ‘0’~‘9’:48~57  ‘a’~’z’:97~122

    ‘A’~’Z’:65~90

    Unicode

    1. java常用转义字符:

    ① 表示换行;

    ② 表示制表符,相当于Tab键;

    1. 数据类型转换

    l  隐式转换(自动转换):数据类型兼容、小转大

    l  强制转换(显示转换):数据类型兼容、大转小时会造成精度丢失

              大、小是指:数据范围的大小

    数据范围大小为(从小到大):byte→short(char)→int→long→float→double

    字符可以和整数进行转换

    1. 变量

    l   本质上说变量就是内存空间的一块存储区域,通过变量名就可以访问它。

    l    变量声明方式

    有2种:

    1)    先声明后赋值

    数据类型 变量名;

    变量名 = 值;

    2)    声明的同时初始化。

    数据类型 变量名 = 值;

    1. 标识符命名规则:

    首字符+其余部分;

    l   首字母,字母,下划线,$符;

    l   其余部分,数字、字母,下划线,$符。长度没有限制,变量名区分大小写

    l   命名时应避开关键字(保留字)

    l   符合驼峰命名法;首字符小写,从第二个单词开始单词首字母大写  userName

    l   见名知意:一般和变量的用途对应,这样便于程序的阅读,不要用拼音。

    1. 从键盘获取输入

    七、            运算符和表达式

    1. 运算符 (优先级别由高到低):

    1)        算术运算符:*  /  +  -   %  ++  --

    2)        关系运算符:>  <  >=  <=  = =  !=

    3)        逻辑运算符:&&  ||  !

    4)        赋值运算符:=  +=  -=  *=  /=  %=

    注意: 1)int+double—结果为double类型

            2) / 当操作数两边都是整形,则商取整(余数丢掉取商),当操作数的两边有一个是浮点,则结果为精确小数

    3) 当++单独使用的时候无论在前面还是后面都一样,与”=”一起用的时候,++在前,先自身加再使用,++在后先使用再自增。

    4)String和任意数据类型相加结果都为String类型

    ?:

    运算符优先级

    八.随机数的获取

             import java.util.Random;

             Random r = new Random();

             r.nextInt(10)+1—1~10之间的整数

    练习:

             获取23~38之间的随机数

     

     

    数组

    一、  一维数组(创建数组、内存)

    二、  一维数组+循环(存取,遍历,求最大值/最小值)

    三、  数据结构和算法

    1. 排序:冒泡、选择、插入
    2. 查找:遍历查找、二分查找

    四、  Arrays类的使用

    五、  二维数组

    一、     一维数组

    1. 数组(Array)作用:引用数据类型,存放于堆中

    1)  存放相同类型数据的一组数据。

    2)  对同类型数据进行集中管理(遍历或存储。。。)

    1. 声明创建数组:

    type[] 变量名 = new type[元素个数]/ type变量名[]= new type[元素个数];

    比如:int[] a = new int[10];   数组名,也即引用a,指向堆中数组元素的首地址。

    1. 数组的初始化(赋值)
      1. int[] a = {1,2,3,4};//声明数组、分配空间、赋值
      2. int[] a = new int[]{1,2,3,4};//声明数组、分配空间、赋值
      3. int a[]=new int[3];a[0] = 1;a[1] = 2;a[2]=3;
    2. 数组的特点

    1)  数组是引用类型,里面可以存放基本数据类型,也可以存放引用数据类型,基本数据类型数组保存的是值,引用数据类型数组保存的是堆里存放值的空间的首地址

    2)  创建后长度不能改变

    3)  每个数组都有一个名为length的只读属性,表示数组的长度。

    4)  访问数组元素通过[]和下标

    5)  新生成的数组,如果是引用类型数据,里面元素默认值为null,如果是基本数据类型,都是各自的默认值(数值型、char为0,boolean类型为false)

    1. 内存图

    栈里存放基本数据以及对象的引用,堆里存放引用类型数据。

     

    二、      一维数组遍历

                           //for循环遍历

                           for(int i=0;i<array.length();i++){

                                       System.out.println(array[i]);

                           }

                           for(int i=array.length-1;i>=0;i--){

                                       System.out.println(array[i]);

                           }

                           //增强for循环

                           for(int num:array){

                                       System.out.println(num);

                           }

    三、  数组查找

    1. 遍历查找(线性查找)
    2. 二分查找(适用于有序数组

    原理:将数组分为三部分,依次是中值(所谓的中值就是数组中间位置的那个值)前,中值,中值后;将要查找的值和数组的中值进行比较,若小于中值则在中值前面找,若大于中值则在中值后面找,等于中值时直接返回。然后继续。。。

    n  四、一维数组排序:

    1. 冒泡排序

              重要思想:两两比较,将较小的升上去,较大的往下沉

              外层循环比较n-1轮

              内层循环:在一轮中将数字,与每一个数两两比较

    原数组:10  6      4       3       2       1

    第一轮:6   4       3       2       1       10

    第二轮:4   3       2       1       6       10

    第三轮:3   2       1       4       6       10

    第四轮:2   1       3       4       6       10

    第五轮:1   2       3       4       6       10

    1

    1. 选择排序

    简单选择排序

    基本思想:在固定的位置上找合适的元素。 在一轮比较中找出未排序的最小值,放在它应该在的位置(找到之后再交换,交换次数比冒泡少)

    1. 插入排序

    基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要 把第n个 数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序

    四、Arrays类的使用

    常用方法:排序(sort),复制(copyOf  rangeOfCopy),填充(fill),查找(indexof)

    五、二维数组

    1. 定义,数组里面的每个元素都是一个一维数组
    2. 二维数组的创建

    1)定义声明二维数组

    type arrayName[ ][ ] ;

    type [ ][ ]arrayName;

                               2)初始化

    a)         静态初始化:数组在声明创建的同时对元素进行赋值

                             int intArray[ ][ ]={{1,2},{2,3},{3,4,5}};//二维数组长度为3,

    b)        动态初始化

                             int intArray[ ][ ];//声明

                             intArray=new int[3][];//创建、分配内存,前面一个[]指高维,指的是二维数组的长度

                             intArray[0] = new int[3];//高维元素赋值

                             intArray[1] = new int[4];

                             intArray[2] = new int[2];

                             intArray[0][0] = 1;//低维元素赋值

                             intArray[0][1] = 2;

                             intArray[0][2] =3;

                             intArray[1][0] =4;

                             。。。

    1. 二维数组特点:

    1)   二维数组的每个元素都是一个一维数组,这些数组不一定都是等长的。

    内存区域堆、栈区别:

    a. 栈空间小,堆占空间大(目录)

    b. 栈空间申请释放速度快,方法结束后,立刻释放

    c.堆的数据申请、释放速度慢,垃圾回收机制统一回收

    1. 遍历

    双重for循环遍历

    l  循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。

    l  循环包括:while循环、do…while循环、for循环

    1. while循环

    当条件满足时,执行循环体。只要布尔表达式为true,循环一直进行

            while( 条件表达式 ) {

                     //循环内容

            }

    while循环的三个表达式:

    练习:输出10~19之间的数字

    练习:求1到100之间的奇数之和与偶数之和。

    1. do-while循环

    先执行,后判断,最少会执行一次

    练习:输出10~19之间的数字

    练习:求1到100之间的奇数之和与偶数之和。

    l  do-while与while循环的区别:

    1. 执行次序不同。While循环先判断,再执行;do-while循环先执行,再判断。
    2. 一开始循环条件就不满足的情况下,while循环一次都不会执行,do-while循环则不管在什么情况下都至少执行一遍。

    l  for循环:

    for循环执行的次数是在执行前就确定的。语法格式如下:

    for(初始化表达式① ; 条件表达式② ; 递增(递减)表达式③){
          执行语句;   //一段代码
    }

    1)   表达式①,初始化变量

    2)   表达式②,如果为true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。

    3)   表达式③,更新循环控制变量。

    4)   再次执行表达式②。。。

    练习:输出10~19之间的数字

    练习:求1到100之间的奇数之和与偶数之和。

    l  break,continue

    1. break主要用在循环语句或者switch语句中。switch中,用来跳出整个语句块。循环中,break跳出当前循环
    2. continue跳过当次循环,直接跳转到下一次循环。

    练习:求1到100之间的奇数之和与偶数之和。用continue

    l  for循环与while循环:

    1)        for循环多用于循环次数已知,while多用于循环次数未知

    2)        for循环中定义的循环变量在循环完毕后,被系统回收。while循环中用到的变量在循环完毕后还存在于内存中,原因:变量的作用域

    3)        两个循环可互换

    l  二重循环

    循环体中包含循环语句的结构称为多重循环,循环嵌套越多,效率越低。

    在二重循环中,外循环执行一次,内循环执行完毕后才执行下一次外循环。

     

             ­

  • 相关阅读:
    HTTP 无法注册URL 进程不具有命名空间的访问权限
    逆变与协变详解
    正式学习React(五) react-redux源码分析
    正式学习React(四) ----Redux源码分析
    正式学习react(二)
    工作总结
    如何自定义echarts 线性图的选择事件
    viewport大白话
    关于div可编辑的复制粘贴问题
    nginx学习
  • 原文地址:https://www.cnblogs.com/yangshuyuan1009/p/9831700.html
Copyright © 2011-2022 走看看