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。 这次介绍的主要内容是和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征途。 还记得我编写的第一个经典程序“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的异常处理机制。对于一个没有面向对象语言背景的人来说,
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入门 (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!”); } 课堂笔记
一、单选题 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 工程师成功地完成一个任务的那种兴奋,那种小有成就的感觉是只有置身其中的人才能 体会的。 总之,这次实训为我提供了与众不同的学习方法和学习体会,从书本中面对现实,为我 将来走上社会打下了扎实的基础。作为在校计算机专业的学生,现在我能做的就是吸取知识, 提高自身的综合素质,提高自己的职业技能,自己有了能力,到时候才会是“车到山前必有 路”。我相信在不久的未来,会有属于我自己的一片天空。 我希望计算机专业的同学在以后的学习或工作中以务实的态度给提供更多的机会锻炼自 己,为大家的成才与就业奠定坚实的基础;并希望同学们要做好角色定位,将自己所学的知识, 学熟、学精。 多学习和收集与项目有关的资料,来提高自己的业务水平,同时多请教经验丰富的老师, 使他们好的经验能够对自己起到借鉴作用,在他们的帮助下,能够很快的培养自己的管理技
第一章Web开发基础知识(简单描述)表单(续) 表单元素