• java培训(1-4节课)


    课程安排:JavaEE方向(控制台程序,GUI程序,Web程序,手机程序)(dos命令是控制台程序;QQ是GUI程序,放在计算机上;QQ空间是Web程序,放在腾讯公司)

    讲课的13本教材:C语言,Java核心技术上,Java核心技术下,面向对象的分析与设计,Oracle数据库,软件测设自动化,Web编程基础,Web程序设计,XML,Linux,Struts2,Hibernate,Spring。

    独立讲解的:Java核心技术上,Java核心技术下,Oracle数据库,Web编程基础,Web程序设计,Struts2,Hibernate,Spring。
    其余的内容在3个阶段都会涉及。

    第一阶段:控制台程序,GUI程序(基础)(C语言,Java核心技术上,Java核心技术下,面向对象的分析与设计,Oracle数据库,软件测设自动化)
    第二阶段:Web程序(应用)(Web编程基础,Web程序设计,XML,面向对象的分析与设计,Oracle数据库,软件测设自动化)
    第三阶段:Web程序(应用)(Struts2,Hibernate,Spring,Web编程基础,Web程序设计,XML,面向对象的分析与设计,Oracle数据库,软件测设自动化)


    学习思路:
    1.编程内功:(代码量,程序结构,程序执行原理)
    2.编程外功:(代码编写,程序框架应用,函数的使用,调用,类的使用。printf("%d-%d",1,2);)

    Java程序开发环境(安装过程):(操作系统文件路径的查找规则:先在当前路径下查找是否存在需要运行的文件,如果存在直接运行,否则去环境变量path所设置的路径中查找文件。)
    1.安装JDK:Java语言运行环境(运行Java程序)。
    1.安装JDK程序(安装版,解压版)。
    2.设置JDK的环境变量(为操作系统设置变量)。
    JAVA_HOME:设置JDK的安装路径,目的为其它程序若要使用JDK,提供一个JDK的访问路径。
    PATH:设置JDK的bin的路径,为调用执行JDK的命令和程序提供一个简便的方式。
    CLASSPATH:在运行class文件时,查找class文件的路径(默认值为当前路径,如果手动设置CLASSPATH,那么默认值将失效。如果还需使用默认值,需要加入"."设置)。

     


     

    Java的执行方式:
    程序的执行方式:编译或解释。
    编译方式:源代码------------------->目标代码---->运行程序
               C,Java,C#       编译             机器语言
    解释方式:源代码---->运行程序
                           翻译

    C语言:.c--->.obj--->.exe(直接执行EXE文件)
        编译    连接
    Java语言:.java----->.class------->Java虚拟机
           编译     字节码   解释

    工具——文件夹选项——查看——隐藏文件类型和扩展名

    Java语言是介于编译型和解释型之间的一门语言,比C的执行效率低,比vb执行效率高。

    Java语言是跨平台的语言(操作系统):JDK运行环境有不同操作系统版本
    C#语言是跨平台的语言(语言):

    Java的语法规则:
    1.字符集:ASCII
    2.标识符,关键字。
    3.变量和常量:
    常量:不能改变的数据(芯片或文件中)。
    变量:可以改变的数据(内存)。
    变量和常量都是用来表示程序中的数据,常量是变量中的值。
    int a=0;a=1;
    数据结构:变量的存储结构,如何完成设计一个比较复杂的数据结构(变量与变量之间的关系);
    变量的数据类型。

    创建项目之后,文件夹(bin,src)——右键src,新建类  —— 包名com.guigu.macheng,main   如果打开已有class 右键——导入

    java的字符可以存放一个汉字


    数据类型:
    基本数据类型:数值,字符(两个字节),布尔(true,false),byte。
    复合数据类型:数组,类,集合,字符串等。

    操作系统管理内存的方式(JDK运行环境);
      每运行一次程序,系统就会为程序的运行开辟一大块内存空间,这块内存空间只供这个程序所使用,一般情况下其它程序无法访问这个内存空间的(除非使用C语言的指针实现访问其它程序的内存空间)。至于这块内存空间多大,在那开辟是有操作系统决定的。
      对于这块内存空间,我们可以将其分为4部分:全局数据区(静态区)、栈区,堆区,代码区。

    • 全局数据区(静态区):程序运行就立刻占用的内存空间,直到程序运行结束内存空间才会被释放(编译时处理)。
    • 栈区:当程序执行到某行代码时,开辟内存空间。当程序执行到距离该变量创建代码最近的"}"时,释放(编译时处理)。
    • 堆区:在需要时创建,不需要时释放(由开发人员自行控制)。
    • 代码区:存储程序运行时。的相关代码。

    变量的特性:生命周期,作用域,可见性。
      生命周期:内存空间合适创建何时释放。
      作用域:在程序运行的哪个范围内存空间可以访问。
      可见性:同名两个变量,且其作用域范围存在交集时。

     


    Java开辟内存空间的规则:

    • 全局数据区(静态区):字符串常量(相同的字符串常量,不论在程序中出现多少次,在全局数据区中只创建一个值),静态变量。
    • 栈区:在函数内部创建的变量(局部变量)。包括所有的基本数据类型变量引用类型变量(C语言的指针变量)。
    • 堆区:通过new开辟的内存空间。


    变量的存储类型:
    值类型:变量的内存空间存储的是数据(基本数据类型)。
    引用类型:变量的内存空间存储的是内存地址(复合数据类型)。

    int a=1,b=0;a,b存储的是值,属于值类型;    String s1=new String("king"),s1存储的是地址,属于引用类型,都存储在栈区

    java中 if(s1==s2)判断地址,c,c#中因为存在运算符重载的概念 ,所以 if(s1==s2)判断的是字符串

    类和对象:
    C语言结构体:结构体就是一个数据类型,通过结构体数据类型创建结构体变量。
    Java语言中:类就是数据类型,对象就是这个类数据类型创建的一个变量。

    Scanner接口(鼠标、键盘)支持获取数据,双击字符串 选中串,双击class,最大/小化

     


     

    int a=1,b=1 则a!=b,因为在内存中,他们保存的是值

    String s1="king",s2="king" 则s1==s2,他们保存的是常量king

    String s1=new String("king") ,s2=new String("king"),则s1!=s2,因为他们在内存中保存的是堆中两个“king”的地址

     

    Scanner键盘输入,在内存中存放在堆中,输入的字符串先在堆中建立对象,再传递给栈区地址;但是输入的数字直接传给栈区,Scanner是堆区对象,sc用来存放地址

    Scanner sc=new Scanner(System.in);

    String s1="king"; String s2=null; s2=sc.next(); int x=sc.nextInt();

     

    空指针异常:java.lang.Null PointerException 只建立了栈区名字,空指针,未建立堆内对象

    比如 Student s1=null; s1.name=sc.next(); Student是类

    Student[] ss = new Student [3];
    Student s1=new Student();
    for(int i=0; i<ss.length; i++)
    {
      s1.name = sc.next();
      ss[i] = s1;
    }
    for(i->0-length)
      System.out.println(ss[i].name);

    输入三次不一样的名字,输出的却是相同的最后一次输入的名字,原因是只开辟了一个对象,只把改地址赋值了数组,将“Student s1=new Student()”加入第一个循环就对了

     

     

  • 相关阅读:
    【UWP】使用Action代替Command
    【UWP】在不同类库使用ResourceDictionaries
    【UWP】不通过异常判断文件是否存在
    【UWP】批量修改图标尺寸
    【UWP】FlipView绑定ItemsSource,Selectedindex的问题
    【UWP】UI适配整理
    【iOS】Object-C注释
    【iOS】desctiption和debugDescription
    【iOS】关联属性存取数据
    【iOS】配置和使用静态库
  • 原文地址:https://www.cnblogs.com/acm-bingzi/p/3415089.html
Copyright © 2020-2023  润新知