课程安排: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()”加入第一个循环就对了

 

 

版权声明:本文为acm-bingzi原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/acm-bingzi/p/3415089.html