• 疯狂Java学习笔记(002)


    回顾

    一、常用的dos(disk operation system)命令:

      1. dir:directory:列出某个路径下所有的文件和文件夹:

      2. cd : change directory:切换目录:不能切换盘符:

      3. 如何切换盘符:直接输入盘符:

      4. md:mkdir :make directory:创建空目录:可以级联创建空目录

      5. rd:rmdir :remove directory:删除空目录:可以删除带内容的目录:/s/q

      6.del:delete 删除文件:

    二、文件名通配符:

       1.  .:匹配的是有一个字符:

       2. *:匹配的是任意字符.

          举例:删除所有的文本文件:

          del *.txt

     3. exit:退出.

    三、Java发展史:

      属于高级语言:

      sun公司1995推出.

      2009年被oracle收购.

      oracle:主要做关系型数据库的.MySQL也被oracle收购了.

    四、jdk,jre,jvm

      1. jdk:Java development kit:Java开发工具包(包含运行和开发的工具)

      2. jre:Java runtime  environment:Java运行时环境:(Java程序运行的必须环境)

        如果只想运行Java程序,只需要jre就可以了.并不需要开发工具.

      3. jvm:Java virtual machine:Java 虚拟机:就是一款软件,给Java程序提供一个运行时的环境支撑.它本身也需要一些核心类库(jvm不能单独运行!)

      三者之间的关系:

      jdk = jre + 开发工具(Tools)

      jre = jvm + 核心类库(libraries) libs

      4. 安装jdk后找不到java,javac等开发工具?

         原因:系统找不到jdk中的bin目录.

         解决方案:手动配置path环境变量!(path:系统寻找命令的路径!)  ,把:jdkin放到path中.

                 

       5.了解内容:classpath的含义:    jvm虚拟机去寻找类的路径:

        1.可以临时指定:(当前会话有效,当前窗口)

            set classpath=c:;d:;e:

        2.永久修改:

         添加一个系统级别的环境变量:classpath

        3.在当前命令有效:使用的是-cp选项(参数)

          java -cp c:;e: Demo

    五、Java语言最大的特点:

      跨平台:

      原理:在不同的操作系统上提供了jvm虚拟机,Java程序实际上是运行在虚拟机中.并不是直接运行在操作系统之上的.

     代码练习:

    第一个程序:

    Java程序编写的一般步骤:

    1.编写源码(以.java结尾的文本文件,一定要把系统的隐藏后缀名取消!)

    2.使用javac命令编译,生成一个.class结尾的字节码文件(二进制的)

    3.使用java命令启动虚拟机,执行.class字节码文件!

    样例:

    在屏幕上输出helloworld

    public class Hello{
        public static void main(String[] args){
           System.out.println("helloworld");
        }
    }

    注意事项:

    1.源码中{},[],()都是成对出现的!

    2.语句结束的标识是英文的分号!!

    3.执行时,类的路径和类名不能错!java 是大小写敏感的!(严格区分大小写!!!)

    六、注释:

      在源文件中,给程序加的解释说明性文字!!

      注释的作用:

        1.给程序解释说明

        2.帮助我们做排除法调试!

      注意:

        多行注释不能嵌套:

     练习:

    1.在屏幕上输出以下信息:一个信息一行!!!

    姓名:你的姓名

    年龄:你的年龄

    电话:你的电话

    地址:北京昌平沙河镇

    自己查找资料如何在一个System.out.println语句中实现内容的换行显示!

    2.常用的dos命令

    3.java语言跨平台的原理是?要求使用语言和图画表示出来!

    4.思考题:

        *一个Java源文件中是否可以有多个类的定义?

          可以:但是public修饰的类只能有一个!

        一个源文件中是否可以都是非public修饰的类?

          可以.

        *一个没有main方法的类是否可以正确编译?是否可以直接运行?

          可以正确编译,但是不能直接运行!

          能直接运行的类必须包含main方法才行!

    小结:

    1.凡是public修饰的类,类名必须和源文件名保持一致!!!

    即:如果没有public修饰,类名随便定义,可以不和文件名相同!

    2.一个源文件中可以有多个类定义!但是public修饰的类只能有一个!

    编译后,每个类会自己生成一个.class字节码文件!

       

    3.源文件中可以没有public修饰的类,此时类名和文件名没有约束!!!

       

    4.类中可以没有main方法,可以通过编译,但是不能直接运行!

        main方法的含义是:jvm虚拟机要执行程序的入口!

        一个程序的入口只能有一个!

    六、关键字:keyword

      Java中已经定义好的有特殊含义的单词:

      特点:全都是小写字母

        public

        static

        void

        class

    七、标识符:identifier

      凡是在程序中起名字的地方的字符串,都是标识符.

      类名,方法名,变量名

    八、标识符命名规则:(必须遵守的,否则编译报错!)

      1.只能包含字符大小写,数字,_,$

      2.数字不能开头

      3.不能使用关键字,但是可以包含关键字.

    九、命名规范:(约定俗成的规定!)

      1.包名:多单词组成时所有字母都小写(以后详讲)

        xxx.yyy.zzz

      2.类名,接口名:多单词组成时,所有单词的首字母大写

        XxxYyyZzz

        Test

      3.变量名,方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写 

        xxxYyyZzz

        main

      4.final变量名:所有字母都大写,多单词时单词之间用下划线分隔

        XXX_YYY_ZZZ

        MAX_VALUE

       !!在定义名字的时候,尽量做到见名知意!!!

    十、Java中常量(字面量)分类:

      1.整型:

      2.小数

      3.字符:

      4.字符串:

      5.boolean : 布尔,只有两个值:true,false

      6.null

    十一、二进制的由来

     

    十二、进制之间的转换:

      十进制转其它进制:除以对应的进制数,直到商为0,将余数倒排! 

    十三、其它进制转十进制:

      位权展开法:每位上的数乘以对应的进制数的n次幂(n从右往左开始,从0开始)

    十四、8421法则:

      1.主要用在二进制和八进制,十六进制的相互转换中!

        1111 -> 8421

      2.二进制上的一对应十进制的数是固定的.

        有1的地方,在最终的结果中加上相应的数字即可.

      3.二进制转八进制:从右往左,每三位一组,计算出对应的十进制数,组合在一起就是对应的八进制数.

      4.八进制转二进制:每位拆分成三个二进制数.

      5.二进制转十六进制:从右往左,每四位一组,计算出对应的十进制数,组合在一起就是对应的十六进制数.

      6.十六进制转二进制:每位拆分成四个二进制数.

    十五、负数的表示形式:补码!!

    1. 原码,反码,补码:都是针对二进制形式说的!!!

    2. 正数的原码,反码,补码都是一致的.

    3. 先找到对应正数的二进制表示形式,然后区分符号位和数值位:

               符号位            数值位

    +12        0                 000 1100

    负数的原码: 1                 000 1100

    负数的反码: 1                 111 0011

    负数的补码: 1                 111 0100

    负数在计算机中是以补码形式存在的:计算的过程如上!!!

    -5

               符号位            数值位

     

    +5         0                 000 0101

    -5原码:    1                 000 0101

    -5反码:    1                 111 1010

    -5补码:    1                 111 1011

     

    总结规律:

    +12        0                 000 1100

    -12的补码: 1                 111 0100

    +5         0                 000 0101

    -5补码:    1                 111 1011

    规律:

    1. 求一个负数的补码,先求出对应正数的二进制形式:

    2.从右往左找1,遇到第一个1,和它右边的所有的0都保留,从这个1往左,全取反!!!

      -20

      +20 0001 0100

      -20 1110 1100

    3. 给出一个二进制数,求它所代表的十进制数:

      1011 0011

    4.首先判断它的正负:

      >如果是正数:位权展开法求

      >如果是负数:先求出对应的正数的值,然后取反即可

          1011 0011   -77

          用规律:

          0100 1101  +77

    十六、变量

      变量的本质:内存中的一段区域!

      变量的三要素:

        1.类型(变量需要的存储空间的大小)

        2.变量名(变量对应空间的标识符,符合命名规范和规则)

        3.值(变量对应的内存空间中存储的值)

      变量的特点:

        在一定范围内变化!即变量可以多次赋值!

    十七、变量初始化的两种格式:

      1.定义变量时就进行初始化

      2.先定义,后初始化!

      变量在使用之前一定要初始化!

      打印变量,最终打印的是变量代表的值!

    样例:

    public class VariableDemo{
        public static void main(String[] args){
           //定义变量:
           int a = 10;
          
           //先定义,后赋值
           int b;
          
           System.out.println(a);//打印的内容是a所代表的空间内的值!!!
           // System.out.println(b);//编译器报错!!尚未初始化!
           b = 20;
           System.out.println(b);
          
           //对变量重新赋值!!!
           a = 30;
           System.out.println(a);//打印的内容是a所代表的空间内的值!!!
        }
    }

    十八、数据类型:

    基本数据类型:四类八种!

     

               占用空间:字节数

    byte       1

    char       2

    short      2

    int        4

    long       8

    float      4

    double     8

    boolean    1

    十九、变量的作用域:scope

      变量定义时所处的{}就是变量的作用域,出了这个{},变量就找不到了.称为作用域,也叫代码块。

    二十、变量赋值的方式:

      1.使用字面量赋值,int a = 10;

      2.使用变量给变量赋值(要么是相同的类型;要么是可以隐式转换的),inb b = a 

      3.使用表达式赋值;int a = 10+1;

      4.使用变量参与的表达式赋值;int a = 1+ b;

     *在撰写代码时,一行只定义一个变量。为了观感好。当然也没有语法错误,int a ,b,c;

     

     系统自动的进行了类型转换,如:

    1.只有类型相同的数据才能进行运算

    2.如果类型不同,①系统会自动进行类型转换,也叫隐式类型转换、自动类型转换(从小范围到大范围)

              ②显示类型转换,强制类型转换;(从大范围到小范围),目标类型  目标变量 =(目标类型)被转换的值。如,int i =10;byte s = (byte)i;

             特点一:发生了高位截断,留的是低位。

             特点二:浮点型到整形的转换,先取整,然后再高位截断。如doubled=3.14;int i = (int)d;  打出的   127是最大正数,128是负数。

    3.表达式中类型转换的转换原则是:招标准

      1.byte,short,char参与运算,直接转换成int型,

      2,char型参与运算实际上用的是对应的Unicode编码值(借鉴ascii码表,其实Unicode的子集,美国标准信息交换代码):

        记住几个关键,,字符‘0’对应的数字是48,‘ A’对应的数字是65,‘a’对应的数字是97

         char型变量参与运算,实际上使用的是对应的int型值;char ch = 65;打印出来的是A。

      3.表达式中有更大的表数范围,则继续提升

      如:byte b = 10;int i = 20;double d= 30;res = b + i +d;

      4.boolean类型不参与数值运算,也不能和其他类型进行转换。

      5.byte型可以转换成short型,但是char不行。

    自动类型转换:不是比较的存储空间的大小,而是表数范围的大小!  

      1.赋值语句右边如果是常量组成的表达式,在编译截断

    一道面试题:byte b = 130;以上语句是否正确,如果想让赋值语句变得正确,如何更改,赋值之后的结果又是多少呢?

    首先更改的话是byte = (byte)130;只是强制类型转换,因为byte的范围是127到-128,而赋值之后,byte是一个字节,也就是8位二进制数,且127的二进制数是01111111,如果加1就是11111111,这个是-128,而127加3即为130,所以对01111111加3即为10000010,发生高位截断,首先后面的10保留,然后由于前面的是负数1开头,所以对其他的二进制位取反,则有01111110,因为01111111是127,所以比它小1的数是126,因为开头二进制数字是1,所以是-126。

      

  • 相关阅读:
    plsql查询中文乱码
    ORA-12514: TNS:listener does not currently know of service requested in connect
    linux 手动配置ip地址方法
    开机自起tomcat
    (静默安装)Cent OS 6_5(x86_64)下安装Oracle 11g
    Linux下启动Oracle服务和监听程序
    linux下强制安装rpm包
    谷歌浏览器如何将整个网页保存为图片
    C语言移位和位运算
    MySQL连接的使用
  • 原文地址:https://www.cnblogs.com/akinodoo/p/9865379.html
Copyright © 2020-2023  润新知