搜档网
当前位置:搜档网 › java基础学习总结

java基础学习总结

java基础学习总结
java基础学习总结

java基础学习总结

【篇一:第一阶段java基础学习总结】

java基础学习总结

第一阶段任务:搭建环境,学习myeclipse的使用,java基础语

法的掌握。

从10月28日到公司,在技术总监为我安排明确每一阶段的学习任

务后,我就进入相关知识的补充,现在将第一阶段的学习情况做一

个总结汇报。

之前接触java较少,只是简单了解过,这几天主要对java的语法

知识进行了相关的学习,在学习中相对来说,由于之前系统的学习

过c++面向对象语言,因此学习起来并不觉得有多大困难,学习也

是采用二者的不同点来进行参考学习,并且对于java的特殊地方予

以特别的注意。并且对于每一个知识点,都尝试写有实验代码,通

过补充理论知识与实际动手,希望能够快速的将其基本掌握。现在

总结一些自己总结的知识点。

java与c++不同点:

(1)、java属于解释型语言,但是它还是需要编译,但它并不是将源

代码编译成二进制代码,而是编译为字节码,然后解释执行字节码,因此具有很好的跨平台性。这与c++的编译型(编译成二进制代码)语言是不同的。

(2)、在java中不区别定义与声明,c++中需要使用extern来声明

一个已经定义过的变量。并且在java中如果变量没有初始化,就直

接使用的话,程序在编译时就会报错,而c++中只会在执行时给出

一个随机值。

(3)、在java中const成为保留关键字,并不使用它,在定义一个

常量的时候,java中使用final。而c++中可以使用const、#define、enum来定义常量。final修饰的表示只能够被赋值一次,赋值后便

不可更改。

(4)、在java中goto也被作为保留关键字,当需要跳出循环时,可

以使用break、continue都可以用来带标签,而跳出当前循环体。

而在c++中break与continue不具备此功能。

(5)、在java中不能在嵌套的两个块中声明名字相同的变量与常量,而在c++中不存在此限制,c++中会依据不同的块,给予变量不同的

作用范围与生命周期。

(6)、java中没有运算符重载的功能,但是我们在使用“+”来连接字

符串的时候,这确实又体现了运算符的重载,可并不能因此就说它

具有运算符重载的功能。而运算符重载是c++的一大特点与难点。

(7)、java与c++的内联机制不同,c++中使用inline关键字来声明

内联函数,而java是否内联,是交由虚拟机来决定的。

(8)、java中,一个构造器可调用另外一个构造器,使用this(...)与super(...)c++中是不能够这样的。并且java的垃圾回收是由java 虚拟机来进行操作,因此它没有析构器。这与c++需要手动回收资

源也是不同的。

(9)、java与c++的继承也是有些不同,最大的区别是java不支持

多继承,只能够单继承。java中继承使用的关键字是extends代替

了c++中的“:”,并且java中的所有继承都是public的,而c++可

以设置多种权限的继承。

(10)、java中一个类只能继承一个父类,但是可以实现多个接口,

它提供了接口的概念,而c++中没有此概念,c++中使用纯虚基类实

现了接口的功能。但是二者是有很大差别的。

(11)、java中的数组与c++的数组也是不尽相同的。在java中比如定义一个数组 int[] a;首先是在栈区分配了一段空间,名字为a,

当再次使用a = new int[10];的时候,

它会在堆区分配10个位置,名字分别是a[0]、a[1]...这与c++中是

有很大差别的,c++中一维数组分配的位置都在栈区,并且可以通过

a++这种方式来遍历数组,它定义数组也不需要new,可以直接给出数组的大小。

(12)、在参数传递方面,二者也略有不同,java中都是值传递,而

c++中有值传递与引用传递(指针传递实质上也是值传递,只不过传

的是地址)。由于java中都是值传递,它具备以下几个特点:①一

个方法不能修改一个基本数据类型的参数(即数值型与布尔型);

②一个方法可以改变一个对象参数的状态,③一个方法不能让对象

参数引用一个新的对象。 java的特性:

(1)、java具有两大类的数据类型,分别是:8种基本数据类型,对

象引用数据类型。其中java将布尔类型,原来在c++中false就是0,true就是1。java中直接定义为false与true。

(2)、java中string的字符串为不可变字符串,stringbuffer为可变

字符串,也就是string的值一旦被创建它就不可被修改。因为这个

类前面使用了final来修饰。

(3)、在一个java源文件中,只能有一个公有类(public),但可以有任意数目的非公有类。如果在其中此时再定义接口,接口的属性

也只能是默认,不能是public。

(4)、在类中的静态方法,没有this指针,因为它是属于一个类的,

而不是某个对象。在静态方法中不能直接访问非静态变量(可通过

调用方法来访问变量),但是可以直接访问本类中的静态变量。非

静态方法可以直接访问静态变量。

(5)、java中的super与this的区别:super不是一个对象的引用,不能将super赋给另外一个对象的变量,它只是一个指示编译器调

用父类方法的特有关键字。而this是一个对象的引用,它指向它自身,同一个类不同对象拥有不同的this。

(6)、关于final的几个重点:final定义的类,不能够被继承。如果

在某个类中(非final类)某个方法使用了final来修饰,那么在子

类中不能使用重写这个方法。final类中所有方法自动地成为final方法,但是其中的变量并不是final的。

(7)、在java中有一个关键字,instanceof来判断一个类b是否属

于类a的子类,常常用于在类型转换时,进行检查类的匹配问题。

(8)、不能构造接口对象,但是可以声明接口变量;不能构造抽象类

对象,但是可以声明抽象类变量。

(9)、接口的修饰符只能为默认的default或者public,它其中的所

有方法都是抽象的,被自动设为public,变量自动设为public

static final。

(10)、java中抽象类与接口的差别:①抽象类用class来修饰,接

口用interface来修饰,抽象类可以继承,接口也可以继承;②一个

类可以实现多个接口,但是只能继承一个抽象类;③抽象类可以有

非抽象的方法,继承它的子类可以对这些方法重写;但是接口中的

方法全部为抽象方法,实现这个接口的类,必须全部用重写接口中

的方法;④在抽象类中定义的方法,他们的修饰符可有这些选择:public protected default private。而接口中的方法全部是public 的;⑤抽象类可以有构造函数,而接口没有构造器。

(11)、java

异常处理用try{}catch{}来扑捉,一般在catch末尾finally来释放

掉一些稀有资源,不管释放扑捉到异常,finally中的语句一定会被

执行的。一般来说,对于异常也可不出,某个方法有异常,在调用

它的方法中继续用thows继续抛出异常,让上一级处理。一般规定

除runtimeexception以外其他的异常,在程序中出现时,都必须处理。

以上内容,是我这几天学习整理所得,由于初学,有些地方不准确、不严谨,希望刘老师给予指正与指导。很多更深入的java知识,需

要在实践中得到不断的补充,在后面实际工作中,希望得到刘老师

刘总监帮助。

何磊

2013年10月31日

【篇二:java基础部分学习心得】

一.java

数据结构,链表~

一.java简介

java核心机制:java虚拟机(实现了一处编程,到处运行),因为其

运行过程是先编译成.class字节码文件,然后在jvm(java virtual machines)运行,不同的操作系统有不同的虚拟机,所以实现了一

处编程,到处运行。

垃圾收集机制(:帮助解决了一些健壮性的问题,不像c/c++那样内

存管理那样麻烦),在编程过程中,会创建许多对象,存储在堆空

间里,占用内存,但是java的垃圾回收机制,会不定时的自动回收

在堆空间里没有任何引用指向的对象,所以在编程时应习惯性及时

将不用的引用设置为null。可以通过system.gc();来快速执行垃圾

回收机制。 j2sdk(jdk): java devleopment kit软件开发包,,开

发需要jdk(包含jre,编译运行开发工具)。

jre:java runtime environment 运行环境,,用户只需要jre(包含系统类库和jvm)。软件格式:

每一个类都对应一个class文件

如果一个源文件文件中包含public类,则该文件名必须以该类命名,每个源文件中最多有一个public类

java的执行入口是main()方法,固定格式:public static void

main(string [] args){…}数组名字可以改变。

区分大写小~

二.java语言基础

变量取名:

标识符选取取名:一定要注意“见名知意”,,但不能和java语言的

关键字重合‘字符常量’“字符串常量”

变量使用:先声明,再赋值,才可以使用变量

基本类型:4类8种;

boolean类型:逻辑运算,用于程序流程控制,只能取 true ,false char类型:字符类型eg:char echar=’中’,unicode编码(每个字符对应有一个编码)每个字符占两个字节,无论中午,英语,数字,每个字符都是占两个字节。

整数类型:

byte 占一个字节 -128-127

short 2个字节

int 4个字节对应包装类integer

long8个字节

浮点类型 flaot 4个字节

double 8个字节对应包装类 double

格式很重要

1.大括号对齐

2.遇到{用tab or shift+tab

3.程序块之间加空行

4.运算符两侧加空格

有特定的条件

5.并排语句之间加空格

6.{前面有空格

7.成对编程

异或 ^ 相异为true

逻辑和逻辑| 无论结果如何,后面的表达式一定会计算

短路和短路|| 第一个表达式已经可以得到结果了,后面的不算了

分支循环语句

if语句

if

else if

else if

else if

else当只有一句语句要执行的时候,可以省略大括号{}~ 但是目前无论是否可以省略,都写上

循环语句

for循环,for(表达式1;表达式2;表达式3){语句;...;}

while循环 while(逻辑表达式){语句;...;}

do while 循环 do(语句;...;) while(逻辑表达式);注意,,do while循环 while(逻辑表达式);的分号

if 语句后面注意不要加分号,不容易被查错~

continue 语句,用在循环中,终止当前循环中下面的语句,到下一次循环

switch() {

case xx:

语句;

case xx:

语句;

default:

语句;

}

这里注意case和break的搭配使用,如果没有break,则程序会一直向下执行。

方法 public (static)返回值类型方法名称(形式参数;...){方法体;java语句; return返回值}当出现return时,立即返回。无返回值时,类型为void

static是静态方法,直接使用类名调用,非静态方法,需要使用对象调用。

方法只有当调用的时候,才会执行,方法中涉及的局部变量,在方法被调用时,出现在栈空间,一旦方法结束,所占用内存消失。 ...{

method(实参;...) //调用

}

(面试)递归~~

三.面向对象

面向对象编程:运用人类正常思维方式构造系统,常使用的原则和思想方法:抽象,继承,分类,聚合,多态

1.使用人类自然语言,描述这个业务的需求

2.根据业务需求寻找涉及的事物类---对象

3.数据模型设计:利用数据描述对象,以及对象之间的关系,将对象数据化。

4.概要设计

类的设计(概要设计):定义类的属性

数据如何初始化:构造器,工厂方法。

详细设计

5.利用分析数据

6.根据数据设计算法实现功能

7.逐一实现算法

8.实现用户响应

9.界面状态管理

用面向对象考虑问题时,不应该考虑第一步,第二部要做什么,1.首先考虑的是,这个问题涉及哪些类和对象,2.考虑这些类和对象,每一种应该具有哪些行为和属性3.每类和类之间具备了什么关系。类是一类事物的一个抽象

对象这个类具体的一个实例

类和对象多为关系:

关联关系

继承关系:一般和特殊的关系,eg:游泳运动员是运动员的一种,足球运动员是球类运动员的一种。

聚合关系:整体和部分的关系,eg:队长和队员是球队的一部分,是聚集关系,头和手是身体的一部分,是组合关系。

实现关系:

多态:

成员变量可以不初始化,java默认会初始化

对象的创建和使用:

使用new关键词来创建对象

对象.成员变量来调用对象的成员变量(引用)

对象.方法来调用对象的方法(引用)

同一类的每个对象有不用的存储空间

同一类的每个对象共享该类的方法

构造方法:构造方法的名字和类名要完全一样,和new一起使用来创建新对象,对对象进行初始化的。

在类中用来初始化对象的一个方法(函数)

eg:public class person{ //创建一个person类

int id;

int age = 20; //定义成员变量

person(int _id , int _age) { //定义一个构造方法,方法名必须与类名完全一样

id = _id;

age = _age;

}

public static void main (string [] args) {

person tom = new person (1 ,20); //创建一个对象tom,利

用构造方法进行了初始化

}

没有指定构造方法时,编译器自动指定一个空的,一旦自己定义了,编译器就不定义了,构造方法前面没有返回值

类名首字母大写,方法名变量名小写,后面的每一个单词的首字母

都要大写方法一旦执行完毕,为这个方法所分配的局部变量的存储

空间将消失

方法重载,构造方法的重载:

方法名相同,类型相同,但是参数变量类型不同的,可以构成重载,构成多个方法,调用时会根据不同的参数选择相应的方法

构造方法与普通方法一样,可以进行重载

关键字:this

在那个对象,this就指向那个对象,指向对象本身自己的引用

static:在类中用static声明的成员变量是静态成员变量,分布在data seg内存空间里,在第一次使用时被初始化并且只有一份,整

个类的所有对象都可以使用,可以用类名.静态成员变量,来直接调用。

用static声明的方法叫静态方法,动态方法通过某一个对象来调用,静态方法没有对象照样可以使用,eg:类名.静态方法,来调用,不

用写对象名字,所以在static方法里不能访问非static的成员

static里不会隐式传递this关键字,即调用不了对象属性

所以当一个方法只和参数相关,则使用static方法,如果和成员变

量相关,则不使用。

静态的方法不针对某个对象调用,非静态成员专属于某个对象,所

以静态方法,不能访问,

可以通过对象引用,或者类名来访问静态成员

static块:在类加载期间就被执行的语句块,软件运行时,会先在jvm上加载类,则static块可以用来加载许多初始化资源。

包:package和import、

【篇三:java入门基础知识总结学习教程大全【必看经

典】】

第一讲 java语言入门

一有一种学习叫无论你身处何地,都可以来看java现场直播

其实别看我说的头头是道的,其实在我刚准备学java的时候,也

老迷茫了,当然有时候迷茫是因为才华配不上梦想,身边的朋友总

是叨叨那谁谁做java工资多么多么的高,整的我心里痒痒的羡慕妒

忌恨,所以就找了很多学习java的机构,后来在我们济南这边选择

了一家学习,学了半年,就学了一些不着调的基础知识,勉强的能

编点小程序,其实啥实战能力也没有,老师教学的时候他自己讲的

都云里雾里的,让我们这小新入行的小白更是摸不着头脑了。我一看,这样下去,我的java梦也就蔫吧了。

后来我一哥们在网上给我说了一个地方让我去学习,他们那里每天

晚上都有公开课,老师现场讲的,于是我就抱着玩的态度,去听了

几天他们的公开课,听的我是豁然开朗,老师讲的是通俗易懂,把

抽象的java,讲解的形象生动,我就觉得和讲故事似的,这才是我

想要的课程,从那时候开始,我就每天晚上去学习,如果各位小伙

伴也想去学习的话,你们可以加一下他们这个群就可以去学习了,

前面的第一组数字是:一四三,中间的第二组数字是:五一零,结

束的一组数字是:一六八。按照顺序组合就可以了,反正我通过自

己的经历发现一个道理,选择不对,努力白费。

1.1 java的特点

1.1.1面向对象:

? 与c++相比,java是纯的面向对象的语言

c++为了向下兼容c,保留了很多c里面的特性,而c,众所周知是

面向过程的语言,这就使c++成为一个混血儿。而java语法中取消

了c++里为兼容c所保留的特性,如取消了头文件、指针算法、结构、单元等。

1.1.2可移植(平台无关性):

? 生成中间字节码指令

与其他编程语言不同,java并不生成可执行文件(.exe文件),而

是生成一种中间字节码文件(.class文件)。任何操作系统,只要

装有java虚拟机(jvm),就可以解释并执行这个中间字节码文件。这正是java实现可移植的机制。

? 原始数据类型存储方法固定,避开移植时的问题

java的原始数据类型的大小是固定的。比如,在任何机器上,整型

都是32位,而c++里整型是依赖于目标机器的,对16位处理器

(比如8086),整数用两个字节表示;在像sun sparc这样的32

位处理器中,整数用4个字节表示。在intel pentium处理器上,整数类型由具体的操作系统决定:对于dos和win32来说,整数是2个字节;对于windows 9x 、nt和2000,整数是4个字节。当然,使

整数类型平台无关之后,性能必然有所下降,但就java来说,这个代价是值得的。java的字符串,则采用标准的unicode格式保存。可以说,没有这个特性,java的可移植性也不可能实现。

1.1.3简单

? java在语法上与c++类似

java的语法与c++很接近,有过c或者c++编程经验的程序员很容易就可以学会java语法;

? 取消了c++的一些复杂而低效的特性比如:用接口技术代替了

c++的多重继承。c++中,一个

类允许有多个超类,这个特性叫做多重继承,多重继承使得编译器非常复杂且效率不高;java的类只允许有一个超类,而用接口(interface)技术实现与c++的多继承相类似的功能其它被取消的特性包括:虚拟基础类、运算符过载等

? java的基本解释器和类支持模块大概仅40k

即使加入基本的标准库和支持线程的模块,也才220k左右。与gui (图形用户界面)相比,明显小很多

1.1.4健壮

? 取消了指针算法

c的最关键的一个特性是它的强大指针算法,比如可以用指针访问字符串、数组甚至文件,很容易产生指针溢出,意外地改写内存和损毁数据。java里有一个指针模型,对于普通的任务,如访问字符串、数组,根本不用指针,而一旦需要,比如访问对象、文件时,也可以获得指针的强大能力,但java同时有高度的指针安全保障,用户永远不可能访问一个坏掉的指针、不可能造成内存分配错误,也用不着专门提防可能出现的内存漏洞。

1.1.5多线程

? 强大的多线程能力

多线程可以使程序有更好的交互性和实时性,并可以最大限度地利用多处理器系统。java有着强大的多线程处理能力,因为各主流操作系统平台在线程的实施方面有重大的差异,所以java为不同的操

作系统实现了专门的多线程机制。在这点上来说,java没有做到平

台无关。

1.2 java简史

? 首次亮相--1995年5月

java技术起先是作为小型的计算机语言,用于消费类设备,比如有

线电视交换盒等。因为这些设备的功能和内存均不足以运行大程序,所以程序要尽可能小;另外,由于不同的厂商可能选用不同的cpu,所以要求这种语言不能受限于任何一种独立的体系结构。1995年5

月23日召开的sunworld 95

大会上,一种全新的浏览器(今天的hotjava的前身)亮相,标志

着java的诞生。

? 开始流行--1996年1月

那时网景公司决定在netscape2.0加入对java的支持,

netscape2.0在1996年1月发布,从这一版本开始,所有

netscape浏览器均支持java。注册了java使用许可证的还有ibm、symantec、inprise和其他许多公司。就连微软,也加入了这一行

列(尽管他们支持的java和标准的java稍有不同)。

? sun的第一个java版本--1996年初

sun公司于1996年初发布了java 1.02,遗憾的是,java1.02还未

摆脱其小型语言的影子,只适合用来做诸如网页上一个随机移动的

文字之类的工作,并不适合用来做正规的程序开发。java1.02作为

一种正规的编程语言,可以说,准备得很不充分。

? 成熟--1998年

1998年12月,java1.2问世了。它是一个功能全面的、具有高度扩展能力的新版本。3天后,java1.2被改进成java2,向一次编写,

到处运行的目标前进了一大步。

? 现状

现在最新的java版本是jdk1.4,它是一个测试版,稳定的正式版是jdk1.3。用户可以到

https://www.sodocs.net/doc/ef7805734.html,/products/免费下载。微软在它的最新浏览器

ie6.0中不再支持java,为java的发展带来阴影。

1.3 jdk的安装与编程环境的设定

1.3.1 java程序的开发过程

经典的java工具包是jdk。尽管可以用任何文本编辑器,如记事本,都可以直接编写java程序然后用jdk的命令编译和运行,为了调试

方便,也为了初学者容易上手,本教程课件将使用一个叫jpadpro

的java编写工具来调用jdk的工具。用户可以到下载这个工具。

1.3.2 jdk的安装

1.3.3安装运行之后,应该首先设置jdk工具包所在的路径。

菜单栏的jdk-〉select jdk directory-〉选择刚才安装的jdk路径-〉ok。

1.3.4 新建一个project

菜单栏的file-new projects-选择路径, 输入project的名字。

1.4两个简单的程序示例

1.4.1 java 应用程序:hello.java

? 编写

新建一个.java文件。file-〉new-〉java file-〉输入一个名字:

hello-〉点creat file.出现了一个空的java文件。

? 编译

jdk-〉compile hello.java 或者点击如演示所示的按钮。实际上是执行jdk工具包里的javac.exe命令,与javac

g:java2jiaochengexample each1hello.java是等价的。便已完

成之后在同一个文件夹就会有一个同名的.class文件。

? 看编译结果,改错

错误举例:少写一个分号;录入错误;

? 运行

jdk-〉run classes-〉选择要运行的class,输入参数(这里,没有

参数)或者点击如演示所示的按钮。

一个有参数的例子

? 看运行结果

1.4.2 java applet: starterapplet.java

新建一个java applet文件。file-〉new-〉java applet-〉输入一个

名字:starterapplet-〉出现了一个空的java文件和一个html文件。 ? 编译

jdk-〉compile starterapplet.java 或者点击如演示所示的按钮。实

际上是执行jdk工具包里的javac.exe命令,与javac

g:java2jiaochengexample each1 starterapplet.java是等价的。注意不要隐藏文件的扩展名,否则给编译时带来麻烦!可以在工

工具/文件夹先项/查看/中修改!!

?

? 看编译结果,改错运行

jdk-〉test applet-〉选择要运行的class,输入参数(这里,没有参数)

或者点击如演示所示的按钮

或者直接双击html文件。

? 看运行结果

1.5 如果获得帮助

1.5.1 下载帮助

jdk并不包含帮助文件,需要到网站上下载,里面有示例和说明。 http://www.confluent.fr/javadoc/jdk13e.html,下载下来时候,双击安装。

1.5.2 使用帮助

敲入想查找的关键字,按回车。

1.6 编程的一些约定

注意:在一个原文件中只能有一个public 类!且文件名与public 类同名!

1.6.1命名规则

类名与文件名应该一致,否则编译出错。比如,class hello的文件名应该是hello.java

类名首字母大写,每个单词开头大写,其他用小写。比如:hello.java, starterapplet.java。变量名用第一个单词用小写字母,第二个以后的单词首字母大写。比如:int myage; 方法的名字第一个单词用小写字母,第二个以后的单词首字母大写,比如:getmyage();

史上最全Java基础知识点归纳

史上最全Java基础知识点归纳 写这篇文章的目的是想总结一下自己这么多年来使用Java的一些心得体会,主要是和一些Java基础知识点相关的,所以也希望能分享给刚刚入门的Java 程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE 相关的、和Java中各个框架相关的内容。 经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握以下的一些内容。 1.JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资

深开发者来说,不会JVM几乎是不可接受的。 JVM作为Java运行的基础,很难相信对于JVM一点都不了解的人可以把Java语言吃得很透。我在面试有超过3年Java经验的开发者的时候,JVM几乎就是一个必问的问题了。当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证Java开发能力的高低。 在JVM这个大类中,我认为需要掌握的知识有: JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump,分析内存结构 class二进制字节码结构,class loader体系,class加载过程,实例创建过程 方法执行过程 Java各个大版本更新提供的新特性(需要简单了解) 2.Java的运行(基础必备) 这条可能出看很简单,Java程序的运行谁不会呢?不过很多时候,我们只是单纯通过IDE去执行Java程序,底层IDE又是如何执行Java程序呢?很多人并不了解。

java的心得体会[工作范文]

java的心得体会 篇一:java初学者学习心得 学习Java心得体会 学习了一学期的Java课程,觉得是该总结自己的心得体会了。开始学习任何一门课,兴趣最重要。一直觉得自己在学计算机编程语言,学习了很多,但每门语言都停留在知识边缘地带,都没深入到它们的精华部分,对它们的精华部分知之甚少,于是趁学校开设这门课,并且有自己的老师讲解,还有了上机的机会,比自己自学省事多了,于是鼓足信心,开始了漫长的java征途。 还记得我编写的第一个经典程序“hello Word”。从那时起我已开始走进Java的世界。当时自己不是很理解为什么main方法一定要这样来定义public static void main,能不能不这样写?问了好多同学,他们告诉我的答案是一样的“java本身要求就是这样子的”,但我自己不甘心,就进行了下面的好多操作:把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的public 取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,

看看运行结果如何。结果把Hello World程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么了main方法是这样定义的了。接着在以后的学习中我也采用这样的方法解决问题,却发现自己的速度比别人慢了好多,我就把自己的课余时间也分一部分给了java。 因为基础是最重要的,只有基础牢固才有可能对后面的学习有更加深刻的认识! 学习一门新的语言,参考书是离不开的。听老师说订的教材偏难,不适合我们初学者,于是我在图书馆借了参考书(一本篇幅较短的入门书来学习那些最简单、最基本的东西,包括学习Java语法等)。同时,对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。 在学习Java的语法时,Java的语法是类似c语言的,所以学习的比较轻松。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,和同学一起讨论了好久才得以解决。 在学习Java的面向对象的编程语言的特性。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。对于一个没有面向对象语言背景的人来说,

java基础知识点总结

Created by AIwen on 2017/5/14. java是面向对象的程序设计语言;类可被认为是一种自定义的数据类型,可以使用类来定义变量,所有使用类定义的变量都是引用变量,它们将会引用到类的对象。类用于描述客观世界里某一类对象的共同特征,而对象则是类的具体存在,java程序使用类的构造器来创建该类的对象。 java也支持面向对象的三大特征:封装、继承、和多态。java提供了private、protected、和public三个访问控制修饰符来实现良好的封装,提供了extends关键字让子类继承父类,子类继承父类就可以继承到父类的成员变量和和方法,如果访问控制允许,子类实例可以直接调用父类里定义的方法。继承是实现类复用的重要手段。使用继承关系来实现复用时,子类对象可以直接赋给父类变量,这个变量具有多态性。 面向对象的程序设计过程中有两个重要的概念:类(Class)和对象(object,也被称为实例,instance)。类可以包含三种最常见的成员:构造器、成员变量、和方法。 构造器用于构造该类的实例,java语言通过new关键字类调用构造器,从而返回该类的实例。构造器是一个类创建对象的根本途径,如果一个类没有构造器,这个类通常无法创建实例。因此java语言提供了一个功能:如果程序员没有为一个类编写构造器,则系统会为该类提供一个默认的构造器,这个构造器总是没有参数的。一旦程序员为一个类提供了构造器,系统将不再为该类提供构造器。 构造器用于对类实例进行初始化操作,构造器支持重载,如果多个重载的构造器里包含了相同的初始化代码,则可以把这些初始化代码放置在普通初始化块里完成,初始化块总在构造器执行之前被调用。静态初始化块代码用于初始化类,在类初始化阶段被执行。如果继承树里某一个类需要被初始化时,系统将会同时初始化该类的所有父类。 构造器修饰符:可以是public、protected、private其中之一,或者省略构造器名:构造器名必须和类名相同。 注意:构造器既不能定义返回值类型,也不能使用void声明构造器没有返回值。如果为构造器定义了返回值类型,或使用void声明构造器没有返回值,编译时不会出错,但java会把这个所谓的构造器当成方法来处理——它就不再是构造器。 实际上类的构造器是有返回值的,当使用new关键字来调用构造器时,构造器返回该类的实例,可以把这个类的实例当成构造器的返回值。因此构造器的返回值类型总是当前类,无须定义返回值类型。不要在构造器里显式的使用return来返回当前类的对象,因为构造器的返回值是隐式的。 java类名必须是由一个或多个有意义的单词连缀而成的,每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分隔符。 成员变量: 成员变量的修饰符:public、protected、private、static、final前三个只能出现一个再和后面的修饰符组合起来修饰成员变量,也可省略。 成员变量:由一个或者多个有意义的单词连缀而成,第一个单词首字母小写,后面每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分隔符。 类型:可以是java语言允许的任何数据类型,包括基本类型和引用类型。 成员方法: 方法修饰符:public、protected、private、static、final、abstract,前三个只能出现一个,static和final最多只能出现其中的一个,和abstract组合起来使用。也可省略。 返回值类型:可以是java语言的允许的任何数据类型,包括基本类型和引用类型。 方法名:和成员变量的方法命名规则相同,通常建议方法名以英文动词开头。 方法体里多条可执行语句之间有严格的执行顺序,排在方法体前面的语句总先执行,排在方法体后面的语句总是后执行。 static是一个特殊的关键字,它可用于修饰方法、成员变量等成员。static修饰的成员表明它属于这个类本身,而

《Java编程基础知识点汇总及习题集》--答案

目录 第一章 Java入门 (2) 第二章 Java基础 (5) 第三章条件转移 (16) 第四章循环语句 (22) 第五章方法 (28) 第六章数组 (35) 第七章面向对象 (44) 第八章异常 (65)

第一章Java入门 知识点汇总 1、JAVA 三大体系 ?Java SE:(J2SE,Java2 Platform Standard Edition,标准版),三个平台中最核心 的部分,包含Java最核心的类库。 ?JavaEE:(J2EE,Java 2 Platform, Enterprise Edition,企业版),开发、装 配、部署企业级应用,包含Servlet、JSP、 JavaBean、JDBC、EJB、Web Service等。 ?Java ME:(J2ME,Java 2 Platform Micro Edition,微型版),用于小型电子设备 上的软件开发。 2、JDK,JRE,JVM的作用及关系 作用 ★JVM:保证Java语言跨平台 ★JRE:Java程序的运行环境 ★JDK:Java程序的开发环境 关系 ★JDK:JRE+工具 ★JRE:JVM+类库 3、JDK环境变量配置 ?path环境变量:存放可执行文件的存 放路径,路径之间用逗号隔开 ?classpath环境变量:类的运行路径, JVM在运行时通过classpath加载需要 的类 4、重点掌握两个程序 ?javac.exe:Java编译器工具,可以将编 写好的Java文件(.java)编译成Java 字节码文件(.class); ?java.exe:Java运行工具,启动Java虚 拟机进程,运行编译器生成的字节码 文件(.class) 5、一切程序运行的入口 public static void main(String args []){ System.out.println(“Hello World!”); } 课堂笔记

JAVA技术--Java基础知识常见考试题JAVA技术.doc

一、单选题 1.对类:(B) public class Test( //...do something } 下面那个正确地定义了类Test的构造函数。 A)public void Test() () B)publicTest()(} C ) public static Test() (} D) publicTest(); 2.下面哪个函数是public void example()(...)的重载函数。(A) A)public void example( float f)(...) B)public int example() (...) C)public void example2()(...} D)public int example_overLoad ()(...) 3.下面的代码段中,执行之后i和j的值是_C_。 int i = 1; intj; j = i++; A)1, 1 B) 1,2 C) 2, 1 D) 2,2 4.以下for循环的执行次数是_B o for(int x=0,y=0;(y !=0)&&(x<4) ;x++); A)无限次B) 一次也不执行 C)执行4次D)执行3次 5.下面程序的输出结果是—C o public class People( String name; int id; public People( String str, int n )( name = str; id = n; } public String toString(){ return id + " :” + name; } public String print()(

JAVA实践心得体会

心得体会 此次只实训了短短的三周。虽说时间很短,但其中的每一天都使我收获很大、受益匪浅, 它不但极大地加深了我对一些理论知识的理解,不仅使我在理论上对java有了全新的认识, 在实践能力上也得到了提高,真正地做到了学以致用,更学到了很多做人的道理,对我来说 受益非浅。除此以外,我知道了什么叫团队,怎样和团队分工合作;同时我还学会了如何更好 地与别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。这也是第一 次让我亲身感受到理论与实际的相结合,让我大开眼界。也是对以前所学知识的一个初审吧! 这次实训对于我以后学习、找工作也是受益菲浅的,在短短的三周中相信这些宝贵的经验会 成为我今后成功的重要的基石;这对于我的学业,乃至我以后人生的影响无疑是极其深远的。 这次实训虽然是我们的第一次,不过同学们表现不错,由此看来,我们在进入大学的这 几个月里学到了不少的专业知识,只是自己感觉不到而已。对于所学专业,我们不能过于自 卑和担忧,否则会妨碍自己学习。实训是学习java的重要环节,有利于我们巩固专业知识、 掌握工作技能,提高就业筹码。 我把本次为期三周的实训看作是“理论与实践相结合的桥梁”。通过这周的实训和学习, 我知道了此次实训的目的,也清楚目前自己的不足,那就是缺乏相应的知识与经验,对所学 的专业知识不能够很好地运用于实践操作。正所谓“百闻不如一见”,经过这次自身的切身实 践,我才深切地理会到了“走出课堂,投身实践”的必要性。平时,我们只能在课堂上与老 师一起纸上谈兵,思维的认识基本上只是局限于课本的范围之内,也许就是这个原因就导致 我们对专业知识认识的片面性,使得我们只知所以然,而不知其之所以然!限制了我们网络 知识水平的提高。但是课本上所学到的理论知识是为我们的实际操作指明了方向、提供相应 的方法,真正的职业技巧是要我们从以后的实际工作中慢慢汲取的。而针对实际操作中遇到 的一些特殊的问题,我们不能拘泥于课本,不可纯粹地“以本为本”。 在这次实训中我得到了许多收获,我第一次体会到java工程师的工作是什么样子的,也 发现了很多不曾注意到的细节,在实训的演示过程中,我对作为一名java工程师注意的事项 应该从小事做起、从基本做起。把职业能力训练与职业素质有机的结合起来。相信这对我接 下来学习专业知识会起到很有效的帮助,在接下来的几个月里,我会以作为一名职业人的身 份在这几个方面要求自己,严格自我,向java工程师靠近。 而经过这次实训,让我明白如果是一个完整项目的开发,必须由团队来分工合作,否则, 即费力又费时还做不好这个项目。因此不管在工作中还是在生活中要和老师、同学保持良好 的关系是很重要的。做事首先要学做人,要明白做人的道理,如何与人相处是现代社会的做 人的一个最基本的问题。对于自己这样一个即将步入社会的人来说,需要学习的东西很多, 他们就是最好的老师,正所谓“三人行,必有我师”,我们可以向他们学习很多知识、道理。 实训结束了感觉虽然辛苦,但很充实。我想这就是java工程师的工作。我也体会到java 工程师成功地完成一个任务的那种兴奋,那种小有成就的感觉是只有置身其中的人才能 体会的。 总之,这次实训为我提供了与众不同的学习方法和学习体会,从书本中面对现实,为我 将来走上社会打下了扎实的基础。作为在校计算机专业的学生,现在我能做的就是吸取知识, 提高自身的综合素质,提高自己的职业技能,自己有了能力,到时候才会是“车到山前必有 路”。我相信在不久的未来,会有属于我自己的一片天空。 我希望计算机专业的同学在以后的学习或工作中以务实的态度给提供更多的机会锻炼自 己,为大家的成才与就业奠定坚实的基础;并希望同学们要做好角色定位,将自己所学的知识, 学熟、学精。 多学习和收集与项目有关的资料,来提高自己的业务水平,同时多请教经验丰富的老师, 使他们好的经验能够对自己起到借鉴作用,在他们的帮助下,能够很快的培养自己的管理技

JavaWeb期末总结

第一章Web开发基础知识(简单描述)表单(续) 表单元素

form body
元素括起整个表单,并给出一些基本定义。表单仅占用HTML文档的部分空间;实际上,一个HTML文档可以包含几个独立的、完成不同功能的表单。method指定了信息传递给HTTP服务器的方法;action给出与处理提交信息的脚本相关的URL(如“registinfor.asp”,“registinfor.jsp”)。 表单输入元素 ?用来把不同的字段放在表单里,以便用户输入信息。 ?name属性指定该字段在某个表单中的唯一名称; ?可选的value属性给出该标记的默认值。 ?在提交表单时,向Web服务器呈上以一组用“?”开头并用“&” 号分开的一组“名字=值”形式的信息,如 http://…/Scriptname?name=me&address=here&time=now ?type属性给出所使用标记的样式,“string”可以是: ?CHECKBOX(复选框)。 ?RADIO(单选按钮) ?TEXT(单行的文本输入栏)。 ?IMAGE(图像放在表单里) ?SUBMIT(提交按钮) ?RESET(清除按钮) ?HIDDEN(在表单中保留不供显示的内容) ?FILE(上传文件) 第二章Servlet开发 1.什么Servlet Servlet是用Java语言编写的运行在服务器端的小应用程序,能够接收Web客户端的请求,并能对Web客户端进行响应,通常是通过HTTP (HyperText Transfer Protocol)协议进行工作的。(可以认为Servlet是服务 器端的一个动态Java程序,用户通过访问这个程序获取服务器的服务。) 2. Servlet的主要方法 Servlet是一个Java类,通常会有3类方法,分别是: init方法,用于初始化。 destroy方法,用于释放资源。 service方法,服务类方法,对用户的请求进行处理,并对用户进行响应,几乎所有处理功能都在这里完成。这类方法可以有多个,最常用的

java各知识点详细总结(毕向东笔记整理)

Java基础知识总结 写代码: 1,明确需求。我要做什么? 2,分析思路。我要怎么做?1,2,3。 3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。 4,代码实现。用具体的java语言代码把思路体现出来。 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用。demo 4,该技术什么时候用?test。 ----------------------------------------------------------------------------------------------- 一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器; 1994年将Oak语言更名为Java; Java的三种技术架构: JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发; JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础; JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序; 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。 2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java 虚拟机)。 3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 环境变量的配置: 1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin 2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。 classpath的配置: 1):永久配置方式:classpath=.;c:\;e:\ 2):临时配置方式:set classpath=.;c:\;e:\ 注意:在定义classpath环境变量时,需要注意的情况 如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件; 如果指定了classpath,那么会在指定的目录下查找要运行的类文件。 还会在当前目录找吗?两种情况: 1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。 2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目

Java基础阶段复习题2(附答案)

复习题2 如有雷同,纯属巧合! 1.下列哪一种叙述是正确的() A. abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{ }包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 2.下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 3.以下哪个表达式是不合法的() A、String x=”Hello”; int y=9; x+=y; B、String x=”Hello”; int y=9; if(x= =y) { } C、String x=”Hello”; int y=9; x=x+y; D、String x=null; int y=(x!=null)&&(x.length()>0) ? x.length() : 0 4.下列关于修饰符混用的说法,错误的是() A.abstract不能与final并列修饰同一个类 B.abstract类中不可以有private的成员 C.abstract方法必须在abstract类中 D.static方法中能处理非static的属性 5.()修饰符允许对类成员的访问不依赖于该类的任何对象 A、abstract B、static C、return D、public 6.关于被私有访问控制符private修饰的成员变量,以下说法正确的是() A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问

JAVA基础学习心得

java基础学习心得 第一篇:java学习需要什么基础第二篇:java 基础要点总结学习java必看第三篇:java学习心得笔记第四篇:java学习心得第五篇:关于java学习的一点心得体会更多相关范文 java学习需要什么基础 随着java这种语言的广泛运用,越来越多从事开发的人员开始学习接触这门课程,那么,java学习需要什么基础?java刚刚入门应该接触哪些知识呢?java入门应该学习什么内容呢? 首先要说明的,java有三个大的方向(j2se,j2me,j2ee),走不同的方向可能学的技术和要花费的时间可能有所不同。我是搞web方向的(j2ee),我学java除了以前一些简单的c语言语法外,没有太多的编程基础,我以前一直认为编程要有很强的数学和英语功底,现在看来这也不是必需,只要有一定的逻辑思维能力和掌握一些常见的计算机词汇,还需要具备一定的自学能力,因为软件开发工作是需要不断学习的。 其次,我想说下我的学习过程,我在网上下载了java教学视频,将java基础从头到尾看了一遍,将上面的代码基本上跟着敲了一遍,然后我把java基础的书看了一遍,一本书看完包括上面的习题大概做一遍差不多一个月。这时你对java的语法和基本知识应该都有比较充分的认识和了解了。 然后,再做一些小项目,跟着视频上的步骤做,最好能自己独立再写写,能写多少是多少。一般网上比较新的的项目库很不好找,因

为项目库是需要实时更新以保证适合市场需要的,而它的升级和更新是需要钱的,所以去报一个培训中心利用它强大的项目库进行实战操作是个很好的选择。 操作一段时间之后,你对java已经有了一定的感觉,就要开始选择你的发展方向了。我选择了j2ee,如果你也是想走这条路,你可以接着看关于j2ee的视频,先是html+js+css,然后jsp+serverlet,再看struts+spring+hibernate等一些框架。同时可以看一些大的培训机构的关于设计模式的视频,最好是it牛人录制的,当然数据库也得学下,然后加上做项目的经验累积,半年就差不多可以出去工作了。 如果你做其他方向的话我不是很了解。再说下我个人的看法,j2me 和j2se好像前景没j2ee好,不过我有同事是做android平台开发的,这个不需要j2ee的知识,你可以去买本android的看看,这个方向貌似很有前途,你应该也常听说android平台的手机,如果走这方向可以再学一下linux知识和c的知识,因为这个平台底层是这些,这也不是必要。 说了这么多希望对大家能有所帮助。最后再说一句,学东西,最重要的是动手,只有动手做了才能深深的理解,牢牢的记住。 java基础 1.java程序是由1个或者n个class组成的程序 2.编写---javac进行编译------java进行执行

java基础刷题知识点总结

基础 1.object类的方法有哪些 clone() protect 创建并返回一个对象的副本 equals()用来比较某个对象是否与调用此方法的对象相等 finalize() protect getClass() 返回一个对象的运行时类 hashCode()返回一个对象的hash值 notify()唤醒在此对象监听器上等待的单个线程。如果有多个,则随机唤醒一个 notifyAll()唤醒在此对象监听器上等待的所有线程 registerNatives() 本地私有方法,在类初始化是会调用此方法 toString() 返回当前对象的字符串表示 wait()使当前线程处于等待直到其他线程调用这个对象的notify或notifyAll方法或者超过指定的时间量 2.接口和抽象类的区别 1.首先描述接口和抽象类的特性 抽象类:是子类通用特性的集合 接口:是抽象方法的集合l 从某种意义上说抽象类包含了接口的所有功能。但是通过实现接口可以实现多继承

什么时候用抽象类和接口 1.如果一些方法必须提供默认的实现,就必须用抽象类,比如在dao层,每个类都有增删查改这几个操作,我们可以把这些操作写在抽象类里,并让抽象类提供默认的实现。 否则的话用接口 2.假如要实现多继承,则必须要用接口,java不支持多继承但是可以通过实现多个接口来解决 3.如果基本功能在不断改变,那么就用抽象类。如果不断改变基本功能并且使用接口,子类就必须不停的更改 03.抽象类是否有构造方法 抽象类有构造方法只是抽象类不能够实例化 4.Final finally finalize()方法的区别 5.Sleep()和wait()的区别 ①这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。 ②锁: 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。 sleep不出让系统资源;wait是进入线程等待池等待,出让系统资源,其他线程可以占用CPU。一般wait不会加时间限制,因为如果wait线程的运行资源不够,再出来也没用,要等待其他线程调用notify/notifyAll唤醒等待池中的所有线程,才会进入就绪队列等待OS 分配系统资源。sleep(milliseconds)可以用时间指定使它自动唤醒过来,如果时间不到只能调用interrupt()强行打断。 Thread.sleep(0)的作用是“触发操作系统立刻重新进行一次CPU竞争”。 ③使用范围:wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,配合synchronized实现等待通信机制,而sleep可以在任何地方使用。 synchronized(x){ x.notify() //或者wait() }

毕向东java基础总结(完整版)

Java基础知识总结(超级经典) 写代码: 1,明确需求。我要做什么? 2,分析思路。我要怎么做?1,2,3。 3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。 4,代码实现。用具体的java语言代码把思路体现出来。 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用。demo 4,该技术什么时候用?test。 ----------------------------------------------------------------------------------------------- 一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器; 1994年将Oak语言更名为Java; Java的三种技术架构: JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发; JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础; JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;

1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。 2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 环境变量的配置: 1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin 2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。classpath的配置: 1):永久配置方式:classpath=.;c:\;e:\ 2):临时配置方式:set classpath=.;c:\;e:\ 注意:在定义classpath环境变量时,需要注意的情况 如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件; 如果指定了classpath,那么会在指定的目录下查找要运行的类文件。 还会在当前目录找吗?两种情况: 1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。 2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。 一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。 4,javac命令和java命令做什么事情呢? 要知道java是分两部分的:一个是编译,一个是运行。

java基础知识练习题

Java基础测试题 一、选择题(每题2分) 1、在JAVA编程中,Java编译器会将java程序转换为()。 A. 字节码; B. 可执行代码; C. 机器代码; D. 以上所有选项都不正确。 2、下列那些不是合法的标识符?() A. Tel_num B. 8ABc C. Emp_1 D. b123.6 E. NULL F. Hello World 3、以下字符常量中不合法的是( )。 A. '|' B. '\'' C."\n" D.'我' 4、下列语句编译没有错误的是:() A. float a=1.5; B.byte a=129; C.byte a=5; D.byte a=(byte)200; 5、java中int数据类型在内存中表示为() A. 2个字节 B.4个字节 C. 由程序员指定 D. 以上都不正确 6、下列程序段执行后t5的结果是( )。 int t1 = 9, t2 = 11, t3=8; int t4,t5; t4 = t1 > t2 ? t1 : t2+ t1; t5 = t4 > t3 ? t4 : t3; A. 8 B.20 C.11 D.9 7、若有定义int a = 2;则执行完语句a += a -= a * a; 后,a的值是( )。 A. 0 B. 4 C. 8 D.–4 8、设 a, b, c, d 均为 int 型的变量,并已赋值,下列表达式的结果属于非逻辑值的是( ) A. a!=b & c%d < a B.a++ = =a+b+c+d C.++a*b--+d D.a+b>=c+d 9、以下代码段执行后的输出结果为() int x=3; int y=10; System.out.println(y%x); A.0 B.1 C.2 D.3 10、下列语句序列执行后,k 的值是( )。 int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A. 31 B. 32 C. 2 D.33 11、假定有变量定义: int k=7,x=12; 则能使值为3的表达式是()。 A. x%=(k%=5) B.x%=(k-k%5) C. x%=k-k%5 D. (x%=k)-(k%=5) 12、设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是()。 A. 把x和y按从大到小排列 B. 把x和y按从小到大排列

Java期末知识点整理总结

Java期末知识点整理总结 计科2班苏锐师编号47 学号201330551464 第一章 Java语言概述 1. Java语言发展历史和现状及前景 2. Java语言的特点: 简单、面向对象、分布式、健壮性、结构中立、 安全性、可移植、解释的、高性能、多线程、多态性 3. Java虚拟机概念(JVM),Java程序的执行过程 4. Java应用程序分类:Application和Applet 5. Java程序的开发环境:JDK,IDE 第二章 Java数据类型及其运算 1. 标识符与保留字 1.2 标识符命名语法规则与Java推荐的标识符命名规则 1.3 Java中的关键字 2. 数据类型byte, short, int long, char, float, double, boolean 注意点:Java中所有数据类型是确定的,与平台无关,没有sizeof操作,其中特别注意char 类型是2字节Unicode编码,与C++ 不同;知道基本类型都有对应的默认值。 整型数的十进制、八进制、十六进制值的表示。 实型数的十进制、十六进制与科学计数法表示,注意实型常量默认类型为double型。 3. 运算符与表达式算术运算符: + - * / % ++ -- 关系运算符:> >= < <= == != 逻辑运算符:&& || !& | 注意短路计算与非短路计算的差别 位运算符: >> << >>> & | ^ ~ 要认识异或(^)与按位取反(~)运算符 赋值运算符: += -= *= /= %= &= |= ^= <<= >>= >>>= 要注意赋值运算符中包含了强制转换: 若: int k = 1; k += 44.232D; 则相当于: k = (int) ( k + 44.232D); 条件运算符:exp ?stat1 :stat2 要注意stat1与stat2要求类型相兼容且不能为void类型。运算符的优先级:算术运算 > 关系运算> 逻辑运算

java心得体会

java心得体会 篇一:JaVa学习心得 JaVa学习心得 从大三开始算,我学习java已经有一年的时间了,不过虽然时间长,但是对于现在的我还是一个初学者,懂不了多少的java初学者。期间曾迷茫过,曾困惑过,走了不少的弯路,老师布置的试验作业每次都是不会做,每次都是要问同学,这个代码什么意思啊?为什么用这条代码,用别的不行吗?甚至后来根本没耐心问,索性就复制同学的作业交上去。但是都是各种0分,害的同学也这样,不过他能找老师反驳,而我却没实力。。。渐渐的,我认识到这样下去是不行的,我必须改正自己的学习态度和方式。接下提到的就是我这一年来的java 学习心得。 刚一开始学习java时,我就已经学习过c语言,不过c语言学的不是很好,所以开始看到java的时候我很反感,看着源代码,都不知道失什么意思。看书的时候一看到源代码就头疼,因为根本看不懂。那段时间根本就是一无所获,在图书馆借了一本书,关java的语法特性,与别的语言相比的优点,什么跨平台,源代码公开,什么writeoncerunanywhere,能说得头头是道,可是一到具体的问题,想写一些具体的东西,问题就都来了,根本不知道该怎么下手。所以每次李旺老师布置的试验作业都没的按时完成。渐渐的时间过去了,一点

进展都没有,我都几乎要放弃了。而后又同学经常来宿舍跟我讲解,我很感谢他。慢慢的我也理解了一些知识。从他那里,我认识到,JaVa 是一门计算机语言,是人类发明的语言,应该比人类语言更容易学习,只要你有一种必胜学习JaVa 心态就可以成功。学习JaVa的方法:JaVa学习中,首先要做到课前、课后复习及预习,要时时保持一个清醒的头脑;多和同学沟通;互相学习;取长补短;在学习中做到帮助他人或他人帮助自己。学习java,的确要学习的东西很多,就像同学提到的。Java不像.net一家独大,Java的繁盛在于开源社区的庞大,这也带来了分支太多的问题,怎样选择一条好的学习路线,对于初学者来说,的确是一件很迷茫的事。其实不管java东西再多,总有规律可循。对于学习java基础的经验就是多做、多思考,基础知识的学习不能不求甚解,要追本溯源,弄清问题的本质。这样才能举一反三,由点及面。java的所有编程思路都是“面向对象”的编程。所以大家在往更高境界发展以前一定要打好基础,基础是王道。我们的基础要扎实扎实再扎实。所谓打好基础并不是说要熟悉所有的java代码。要了解java的结构。class,methode,object,各种套用import,extend让自己在结构上对java有个立体而且整体的了解。 学Java千万不要浮躁。说到浮躁,这也是一个很值得我深思的问题。我觉得我自己也有这样的倾向,不仅是我,估计大多数的人都有这个毛病。总是喜欢讨论什么语言最好,什么语言功能强大。这种讨论倒没有错,不过真正学习的时候,浮躁会使你失去很多。在学习过程中,

java基础知识详细整理(图文并茂深入浅出)

JSE第一部分 分享者:张振羽 2017.6.30

1.什么是 JDK API (1) Application Programming Interface ,应用程序编程接口 (2) 是一些预先定义的函数,开发人员可提供直接调用的功能。 2.JDK包结构 便于维护,按照功能划分,不同功能的累划分在不同功能的包中,常用的包如下表: 3.字符串的基本操作 3.1 String 及其API

3.1.1 String (1) String是不可变对象 (2) https://www.sodocs.net/doc/ef7805734.html,ng.String使用了final修饰,不能被继承。 (3)字符串一旦被初始化,就不可以被改变,存放在方法区中的常量池中 (4) 任何一个字符对应2个字节的长度,1个字节 = 8位二进制。 3.1.2 String s=new String (“abc”) (1) 众所周知,答案是:创建两个对象 (2) why?举例子: 分析步骤: a) 栈中开辟一块空间存放引用str1(地址信息); b) String池中有一块空间,存放String常量"abc"; c) 引用str1指向池中String常量"abc"; d) str1所指代的地址即常量"abc"所在地址,输出为true; 结论:创建了一个引用对象str1

分析步骤: 1) 栈中开辟一块空间存放引用str3; 2) 堆中开辟一块空间存放一个新建的String对象"abc"; 3) 引用str3指向堆中的新建的String对象"abc"; 4) str3所指代的对象地址为堆中地址,而常量"abc"地址在池中,输出false; 3.2 StringBuilder常见API

Java基础知识整理教学教材

Java知识点总结 1环境搭建与开发 1.1 环境变量 JA V A_HOME:Java的安装目录; CLASSPATH:指定一个路径列表,用于搜索Java在编译或运行时需要用到的类(.class文件); PATH:指定一个路径列表,用于搜索可执行文件。 1.2 Java SDK应用 编译:Javac 类名.class; 运行:Java 类名; 打包:jar cf test.jar test (把当前目录下的test目录下的所有文件压缩到test.jar文件中)。 2变量与常量 Java中的常量用保留字final来实现。 变量:局部变量(local variable)、实例变量(instance variable)、类变量(class variable);任何变量在使用前都必须初始化,局部变量必须显示初始化,实例变量在类的构造方法被调用时初始化(分配默认值),类变量在类被加载时被初始化。 3标识符 3.1 命名 在Java语言中,标识符的定义规则是以字母、下划线、美元符开始,后面可以跟字母、下划线、美元符、数字。 因为Java语言使用Unicode字符集,所以对字母不仅限于英文,还可以是日文、韩文、阿拉伯文、中文等。 区分大小写,没有字数限制。

3.2 关键字 3.2.1static static方法中不能有this和super关键字(static方法不是“面向对象”的,而是“面向类”的)。 static方法中只能访问所属类的static方法和变量。 static数据成员的初始化:在第一次生成该类的对象时初始化。 3.2.2final 1)final数据 a)static final ●更加典型的定义方式是public static final; ●占用一段不能改变的存储空间; ●代表编译时常量,即在编译器就能知道其值(如果只声明为final或 者static,是在运行时才知道值)。 ●全部用大写字母命名,单词之间用下划线隔开。 b)final数据与final引用 ●final数据的值不能被改变; ●final引用是指无法将其指向一个新的对象(数组也是一种引用),对 象本身的值是可以改变的。 c)空白final(声明为final却未赋初始值) ●可以做到根据对象有所不同,又保持恒定不变的特性; ●必须保证使用前已经初始化:在定义处赋值或者在构造器中赋值。 2)final参数 ●无法在方法中更改引用所指向的对象。 3)final方法 ●禁止覆盖,防止任何继承类修改它的定义; ●private方法都是final的,因此private方法无法覆盖。 4)final类 ●不允许继承该类; ●final类中的所有方法都隐式指定为final的。

相关主题