2012内蒙古自治区java版本基础

合集下载

Java基础教程简介(java配置、基础)

Java基础教程简介(java配置、基础)

第7章 建立对话框 第8章 Java Applet基础 第9章 图形与图像 第10章 Java多线程机制 第11章 输入/输出流 第12章 Java网络的基本知 识
Java 简介
Java语言具有面向对象、与平台无关、安 全、稳定和多线程等优良特性,是目前软件 设计中极为强大的编程语言。Java语言不仅 可以用来开发大型的应用程序,而且特别适 合Internet的应用开发。尤其是Java Swing 推出之后,不仅使Java的功能更加强大,而 且使Java具备了“处处可用”的特点,Java 已成为网络时代最重要的语言之一。
Java2 简介
JAVA和C++一样是一门OOP语言,或者应该说JAVA现 在已经不是一门单纯的语言而是一系列的标准、接 口等,提供构筑互联网应用开发的一套完整的解决 方案;
JBuilder是BORLAND公司推出的一种可视化开发工具, 是一个集成编辑环境(IDE),用来编写java ,就象 VC++一样。
SDK平台提供的Java编译器(javac.exe)和Java解释器 (java.exe)位于Java安装目录的bin文件夹中,为了能在任 何目录中使用编译器和解释器,应在系统特性中设置Path。 对于Windows2000、Windows2003、Windows XP,用鼠标 右键点击“我的电脑”,弹出菜单,然后选择属性,弹出 “系统特性”对话框,再单击该对话框中的高级选项,然后 点击按钮“环境变量”,添加如下的系统环境变量:
创始人:James Gosling.
Java2 简介
就像win98和winXP而已,其实是版本升级时,用的不 同名称而已,在以前的java 1.1时,sun那时就称其 为java,到了98年,sun公司出了java 1.2,公司为 了行销考量,把java重新更名为:java 2。java2是 指java 2 platform,他基于api1.2,一直延用到今 天,JAVA2是JAVA的版本号。以前的java只分两部分, 从98年出了新版本,更名以后,把java分成了三部 分,即我们现在见到的J2SE,J2ME,J2EE, 三个java 开发平台。以前的jdk,现在称其为j2sdk,并没有 太大区别,只是一个发展过程。

Java基础知识总结大全(内容详细)

Java基础知识总结大全(内容详细)

Java基础知识总结⼤全(内容详细)⼀、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机,⽤于保证java的跨平台的特性。

java语⾔是跨平台,jvm不是跨平台的。

JRE(Java Runtime Environment):java的运⾏环境,包括jvm+java的核⼼类库。

JDK(Java Development Kit):java的开发⼯具,包括JRE+开发⼯具2、环境变量path和classpath的作⽤是什么?(1)path是配置Windows可执⾏⽂件的搜索路径,即扩展名为.exe的程序⽂件所在的⽬录,⽤于指定DOS窗⼝命令的路径。

(2)Classpath是配置class⽂件所在的⽬录,⽤于指定类搜索路径,JVM就是通过它来寻找该类的class类⽂件的。

3、变量有什么⽤?为什么要定义变量?什么时候⽤?变量的作⽤:⽤来存储数据。

为什么要定义变量:⽤来不断的存放同⼀类型的常量,并可以重复使⽤4、&和&&的区别?(1)&&会出现短路,如果可以通过第⼀个表达式判断出整个表达式的结果,则不继续后⾯表达式的运算;只能操作boolean类型数据;(2)&不会出现短路,将整个表达式都运算。

既可以操作boolean数据还可以操作数。

5、标⽰符命名规则:由数字(0-9),⼤⼩写英⽂字母,以及_和$组成。

不能以数字开头。

不能使⽤关键字来⾃定义命名。

6、数据类型:(1)基本数据类型(4类8种):整数类型:byte、short、int、long浮点数类型:float、double字符类型:char布尔类型:boolean(ture false)(2)引⽤数据类型:类接⼝数组7、类型转换精度从⾼到低 double float long int short(char) byte (1)⾃动类型转换 将⼀个低精度---⾼精度 (2)强制类型转换 将⼀个⾼精度---低精度(精度会下降)8、java语⾔的三种技术架构J2EE:企业版 是为开发企业环境下的应⽤程序提供的⼀套解决⽅案。

java语言基础知识(完整版)

java语言基础知识(完整版)

一、java开发环境二、名词解释1.JVM三、eclipse1.定义四、注释1.解释性文本2.其他注释五、变量4.命名规则六、八种数据基本类型七、数据类型之间的转换1.自动类型转换八、运算符1.算术运算符(2)使用情况分两种:(3)简化版:2.关系运算符九、分支结构1.if结构十、循环结构1.while结构十一、嵌套结构1.定义十二、数组2.声明3.初始化十三、方法1.意义2.定义3.调用十四、关键字用法1.scanner4.水平制表符 \t一、java开发环境编译运行过程(常见面试题)编译期:将.java源文件交给编译器编译成.class字节码文件的过程(2)运行期:把编译后的.class字节码文件经过JVM加载并运行.class字节码文件配置环境变量windows 10系统下配置JDK环境变量:(1).安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:/java/jdk1.8.0_08;(2).安装完成后,右击“我的电脑”,点击“属性”;(3).选择“高级系统设置”选项卡,选择“高级”栏,点击“环境变量”;(4).在“系统变量”中,设置3项属性,JAVA_HOME PATH CLASSPATH若已存在则点击“编辑”,不存在则点击“新建”;(5).JAVA_HOME指明JDK安装路径,例如刚刚安装时所选择的路径D:/java/jdk1.8.0_08,此路径下包括lib,bin,jre等文件夹;Path使得系统可以在任何路径下识别java命令,设为: %JAVA_HOME%/bin;创建 CLASSPATH变量CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为:(6).“开始”->;“运行”(win10系统下 win+R键回车),键入“cmd”;(7).键入命令“javac”,“java”,“java -version”几个命令,出现画面,说明环境变量配置成功即环境变量配置成功;java开发环境特点跨平台的:软件可以不受计算机硬件和操作系统的约束而在任意计算机环境下正常运行; 面向对象:指以对象为基本粒度,其下包含属性和方法; 安全性:可以分为四个层面,即语言级安全性、编译时安全性、运行时安全性、可执行代码安全性;多线程是指允许一个应用程序同时存在两个或两个以上的线程,用于支持事务并发和多任务处理;一次编程到处使用:Java源代码的书写不拘泥于特定的环境,可以用记事本、文本编辑器等编辑软件来实现,然后将源文件进行编译,编译通过后可直接运行二、名词解释1.JVMJava虚拟机;加载.class字节码文件并运行.class字节码文件JREJava运行环境;包含JVM和运行java所必需的java系统类库JDKJava开发工具包,包含JRE和开发java程序所必须的命令工具说明:运行java程序的最小环境为 JRE开发java程序的最小环境为 JDK三、eclipse1.定义IDE集成开发环境(带图形界面的功能强大的开发工具)优点IBM公司的、开源的、免费的,不需要安装,仅需解压即可开发步骤新建Java项目/工程-------------小区新建Java包--------------------楼+单元新建Java类--------------------房子四、注释1.解释性文本多行注释: /*文字注释......文字注释*/文档注释: /** 文档注释 */2.其他注释其他注释属于后期内容,后期定会填充五、变量1.声明-----------相当于在银行开个账户int a; //声明一个整型的变量,名为aint b,c,d; //声明三个整型的变量,名为b,c,d2.初始化--------相当于给银行账户存钱int a = 250; //声明整型变量a并赋值为250int a; //声明整型变量aa = 250; //给变量a赋值为2503.使用-----------相当于使用银行账户里的钱对变量的使用就是对它所存的那个数的使用int a = 5;int b = a+10; //取出a的值5,加10后,再赋值给变量b System.out.println(b); //输出变量b的值15System.out.println("b"); //输出b,双引号中的原样输出 a = a+10; //取出a的值5,加10后,再赋值给a//在a本身基础之上增10System.out.println(a); //15//变量在用之前必须声明并初始化//System.out.println(m); //编译错误,变量m未声明 int m;//System.out.println(m); //编译错误,变量m未初始化4.命名规则只能包含字母、数字、_和$符,并且不能以数字开头严格区分大小写不能使用关键字允许中文命名,但不建议,建议"英文的见名知意"、"驼峰命名法"六、八种数据基本类型数据类型占位字节范围1byte81-128~1272short162-32768~32767char1620~655354int324-2147483648~2147483647 5double648无限大6float324无限大7long648-9223372036854775808~ 9223372036854775807boolean81True false七、数据类型之间的转换byte short char 通常转换为int计算1.自动类型转换基本数据的自动类型转换只有7种数据类型,除了布尔型基本原则:低级别可以转高级别从左向右可以依次转换:byte-short-int-long-float-doublechar-int-long-float-double运算时的自动转换条件:两种数据类型要兼容,目标类型大于原类型当范围大的类型与范围小的类型进行运算时,结果会自动转成范围大的类型2.强制类型转换高级别转低级别时必须进行强制类型转换 是否进行强制类型转换取决于数据类型级别的高低,而不取决于数据类型的实际值格式:(type)value, type是要强制类型转换后的数据类型public class mainTest {public static void main(String[] args) {int pageSize = 3;long pageNo = 2;int num = (int) ((pageNo-1)*pageSize);// 强制类型转换,long类型转换为int类型 System.out.println(num);int test = (int)(pageNo-1)*pageSize;System.out.println(test);}八、运算符1.算术运算符+ , - , * , / , % , ++ , --(1)使用规则:必须与变量一起使用a++/++a/a--/--a++/--表示变量里的值会自动+1/-1后存入变量里。

Java语言基础

Java语言基础

Java语言基础前言一个Java源程序中可以定义多个类,但是,具有public属性的类只能有一个,而且必须要与文件名相一致。

还有,main方法一定要放在这个public的类之中,这样才能java(运行)这个类。

另外一点是Java语言里面是严格区分大小写的。

NetBeans IDE是一个较好的Java集成编译调试器,在NetBeans IDE中,当你输入代码过程中,系统会自动检测其语法的正确性。

Jar 是可执行文件,它包含了一个工程中所有的文件。

但需安装Java Runtime软件包,例如:<jdk-path>/bin/java –jar bluej-111.jarJ2EE(Java 2 Enterprise Edition)一个Java文件内可以包含多个类(class),在编译后会产生多个class文件。

在类的前面如含有“public”关键字,则其类名必须与文件名一致(大小写也要一致)!因此如果在同一个源文件中不允许有二个以上的public类!设定Java虚拟机的查询类的路径:set classath=…,设定以后,Java虚拟机将按照classpass指定的路径去查找,而不会去查找当前路径。

如果要包含当前目录则应该在路径后面加上“;.”,即“.”表示当前目录。

重要提示:set classpath后面的等号二端不可有空格,路径中的目录名也不允许有空格!这些含有空格的目录名在Windows系统中是允许的,但在Java虚拟机的classpath中是不允许的。

Classpath也不支持汉字!书籍:清华大学出版的“Java就业培训教程”,,张孝祥IT课堂系列。

Java SDK 1.4.2 API分类:Applet、awt、beans、io、lang、math、net、nio、rmi、security、sql、text、util。

数据类型Java语言是一种严格的“类型化”语言。

这意味着每个变量都必须有一个声明好的类型。

2012年计算机二级Java类学习教程

2012年计算机二级Java类学习教程

6.2 类类是组成Java程序的基本要素。

它封装了一类对象的状态和方法,是这一类对象的原型。

在前几章的例子中,我们已经定义了一些简单的类,如Hellowo rldApp类。

public class HelloWorldApp{public static void main( String args[ ] ){System.out.println("Hello World !");}}可以看出,一个类的实现包含两部分的内容:classDeclaration {classBody}下面我们分别对每一部分详细讲述。

6.2.1 类声明一个最简单的类声明如下:class className {……}例如:class Point{……}同时,在类声明中还可以包含类的父类,类所实现的接口以及修饰符public、abstract 或final。

我们将分别在后面的几节中介绍。

6.2.2 类体类体中定义了该类所有的变量和该类所支持的方法。

通常变量在方法前定义(并不一定要求),如下所示:class className {memberV ariableDeclarationsmethodDeclarations}下例定义了一个Point类,并且声明了它的两个变量x、y坐标,同时实现init()方法对x、y赋初值。

例 6.1class Ponit {int x,y;void init(int ix, int iy){x=ix;y=iy;}}类中所定义的变量和方法都是类的成员。

对类的成员可以设定访问权限,来限定其它对象对它的访问,访问权限所以有以下几种:private, protected, public, friendly。

我们将在§6.6中详细讨论。

同时对类的成员来说,又可以分为实例成员和类成员两种。

我们在§6.8中详细讨论。

[page]6.2.3 成员变量最简单的成员变量的声明为:type variableName;如在例 6.1中所声明的变量,int x,y;成员变量的类型可以是Java中的任意数据类型包括简单类型、数组、类和接口。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、数组A和B的元素分别有序,欲将两数组合并到C数组,使C仍有序,应将A和B拷贝到C,只要注意A和B数组指针的使用,以及正确处理一数组读完数据后将另一数组余下元素复制到C中即可。 void union(int A[],B[],C[],m,n) //整型数组A和B各有m和n个元素,前者递增有序,后者递减有序,本算法将A和B归并为递增有序的数组C。 {i=0; j=n-1; k=0;// i,j,k分别是数组A,B和C的下标,因用C描述,下标从0开始 while(i=0) if(a[i]while(iwhile(j>=0) c[k++]=b[j--]; }算法结束 4、要求二叉树按二叉链表形式存储。15分 (1)写一个建立二叉树的算法。(2)写一个判别给定的二叉树是否是完全二叉树的算法。 BiTree Creat() //建立二叉树的二叉链表形式的存储结构 {ElemType x;BiTree bt; scanf(“%d”,&x); //本题假定结点数据域为整型 if(x==0) bt=null; else if(x>0) {bt=(BiNode *)malloc(sizeof(BiNode)); bt->data=x; bt->lchild=creat(); bt->rchild=creat(); } else error(“输入错误”); return(bt); }//结束 BiTree int JudgeComplete(BiTree bt) //判断二叉树是否是完全二叉树,如是,返回1,否则,返回0 {int tag=0; BiTree p=bt, Q[]; // Q是队列,元素是二叉树结点指针,容量足够大 if(p==null) return (1); QueueInit(Q); QueueIn(Q,p); //初始化队列,根结点指针入队 while (!QueueEmpty(Q)) {p=QueueOut(Q); //出队 if (p->lchild && !tag) QueueIn(Q,p->lchild); //左子女入队 else {if (p->lchild) return 0; //前边已有结点为空,本结点不空 else tag=1; //首次出现结点为空 if (p->rchild && !tag) QueueIn(Q,p->rchild); //右子女入队 else if (p->rchild) return 0; else tag=1; } //while return 1; } //JudgeComplete

2、由二叉树的前序遍历和中序遍历序列能确定唯一的一棵二叉树,下面程序的作用是实现由已知某二叉树的前序遍历和中序遍历序列,生成一棵用二叉链表表示的二叉树并打印出后序遍历序列,请写出程序所缺的语句。 #define MAX 100 typedef struct Node {char info; struct Node *llink, *rlink; }TNODE; char pred[MAX],inod[MAX]; main(int argc,int **argv) { TNODE *root; if(argc<3) exit 0; strcpy(pred,argv[1]); strcpy(inod,argv[2]); root=restore(pred,inod,strlen(pred)); postorder(root); } TNODE *restore(char *ppos,char *ipos,int n) { TNODE *ptr; char *rpos; int k; if(n<=0) return NULL; ptr->info=(1)_______; for((2)_______ ; rposk=(3)_______; ptr->llink=restore(ppos+1, (4)_______,k ); ptr->rlink=restore ((5)_______+k,rpos+1,n-1-k); return ptr; } postorder(TNODE*ptr) { if(ptr=NULL) return; postorder(ptr->llink); postorder(ptr->rlink); printf(“%c”,ptr->info); }

3、设从键盘输入一整数的序列:a1, a2, a3,„,an,试编写算法实现:用栈结构存储输入的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。算法应对异常情况(入栈满等)给出相应的信息。

设有一个背包可以放入的物品重量为S,现有n件物品,重量分别为W1,W2,...,Wn。问能否从这n件物品中选择若干件放入背包,使得放入的重量之和正好是S。设布尔函数Knap(S,n)表示背包问题的解,Wi(i=1,2,...,n)均为正整数,并已顺序存储地在数组W中。请在下列算法的下划线处填空,使其正确求解背包问题。 Knap(S,n) 若S=0 则Knap←true 否则若(S<0)或(S>0且n<1) 则Knap←false 否则若Knap(1) , _=true 则print(W[n]);Knap ←true 否则 Knap←Knap(2) _ , _

设有一个顺序栈S,元素s1, s2, s3, s4, s5, s6依次进栈,如果6个元素的出栈顺序为s2, s3, s4, s6, s5, s1,则顺序栈的容量至少应为多少?画出具体进栈、出栈过程。 假定采用带头结点的单链表保存单词,当两个单词有相同的后缀时,则可共享相同的后缀存储空间。例如:

设str1和str2是分别指向两个单词的头结点,请设计一个尽可能的高效算法,找出两个单词共同后缀的起始位置,分析算法时间复杂度。

将n(n>1)个整数存放到一维数组R中。设计一个尽可能高效(时间、空间)的算 法,将R中保存的序列循环左移p(0变换为(xp, xp+1, „ , xn-1 ,x0 , x1,„, xp-1)。

4、#define maxsize 栈空间容量 void InOutS(int s[maxsize]) //s是元素为整数的栈,本算法进行入栈和退栈操作。 {int top=0; //top为栈顶指针,定义top=0时为栈空。 for(i=1; i<=n; i++) //n个整数序列作处理。 {scanf(“%d”,&x); //从键盘读入整数序列。 if(x!=-1) // 读入的整数不等于-1时入栈。 if(top==maxsize-1){printf(“栈满\n”);exit(0);} else s[++top]=x; //x入栈。 else //读入的整数等于-1时退栈。 {if(top==0){printf(“栈空\n”);exit(0);} else printf(“出栈元素是%d\n”,s[top--]);} } }//算法结

5、请编写一个判别给定二叉树是否为二叉排序树的算法,设二叉树用llink-rlink法存储。 6、在有向图G中,如果r到G中的每个结点都有路径可达,则称结点r为G的根结点。编写一个算法完成下列功能: (1).建立有向图G的邻接表存储结构; (2).判断有向图G是否有根,若有,则打印出所有根结点的值。

7、约瑟夫环问题(Josephus问题)是指编号为1、2、„,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,„,如此重复直到所有的人全部出列为止。现要求采用循环链表结构设计一个算法,模拟此过程。 #include typedef int datatype; typedef struct node {datatype data; struct node *next; }listnode; typedef listnode *linklist; void jose(linklist head,int s,int m) {linklist k1,pre,p; int count=1; pre=NULL; k1=head; /*k1为报数的起点*/ while (count!=s) /*找初始报数起点*/ {pre=k1; k1=k1->next; count++; } while(k1->next!=k1) /*当循环链表中的结点个数大于1时*/ { p=k1; /*从k1开始报数*/ count=1; while (count!=m) /*连续数m个结点*/ { pre=p; p=p->next; count++; } pre->next=p->next; /*输出该结点,并删除该结点*/ printf("%4d",p->data); free(p); k1=pre->next; /*新的报数起点*/ } printf("%4d",k1->data); /*输出最后一个结点*/ free(k1); } main() {linklist head,p,r; int n,s,m,i; printf("n="); scanf("%d",&n); printf("s="); scanf("%d",&s); printf("m=",&m); scanf("%d",&m); if (n<1) printf("n<0"); else {/*建表*/ head=(linklist)malloc(sizeof(listnode)); /*建第一个结点*/ head->data=n; r=head; for (i=n-1;i>0;i--) /*建立剩余n-1个结点*/ { p=(linklist)malloc(sizeof(listnode)); p->data=i;

相关文档
最新文档