文档库 最新最全的文档下载
当前位置:文档库 › Java学习记录

Java学习记录

Java学习记录
Java学习记录

2014.10.18

1、当一个类的数据成员是数组时,可在先申明再分配空间;

2、使用方法random()时,应注意使用数学类前缀,在强制转换时也应注意强制转换的左右结合性;

2014.10.24

1.关于继承中子类对象与父类引用变量之间赋值后访问属性和方法的实质问题:若父类成员方法和成员变量均不是静态变量,则子类访问的方法和变量均是自己的,但父类引用变量的属性是自己的方法却不是;若父类的属性和方法均为静态则父类的属性和方法均为自己的。隐藏与覆盖的本质是,用子类访问成员方法和成员变量时,均是访问自己的成员;父类则不然,父类的属性值是自己的,但方法却是子类的。

2014.10.25

1.参数传递时,遵守精确匹配原则和自动类型转换匹配原则。

2.父类对象引用子类对象后,若父类的成员方法和属性均不为静态,则父类的方法是子类的,但属性仍旧是父类本身的。

3.对父类属性的的访问,Java与C++的差异,在Java语言中可以是同关键字super来调用父类的函数,在C++中则是通过父类的函数访问属性(都是通过父类的方法访问父类的属性)。

4.子类调用父类构造方法时,若使用了super关键字则该语句必须位于子类构造方法语句块的第一条语句。

2014.10.31

1.StringBuffer 类无自己的equals()方法,其equals()方法继承自Object(祖先类),祖先类的equals()比较的是对象是否相同,即两对象是否指向同一内存单元。

2.String类的concat()方法的返回值是一个新串。

3.String 类的对象是字符串常量,无论如何均不更改其值。

4.StringBuffer类对象的内容可以更改,其引用变量所知对象不会发生改变。

5.append()函数能将作为参数的原串的内容改变,而赋值语句则不行。

2014/11/08

1.如果父类是抽象类则子类应该对父类的抽象的方法进行覆盖。

2.可以用子类对象对父类对象进行赋值。

3.默认访问控制符:同类、同包。

4.在类嵌套中遵“循就近原则”。

5.interface 接口的默认访问控制修饰符为public abstract(接口是抽象类

的一种)且接口的属性值的默认访问控制符为 public static final,方法的访问控制符为 public abstract。

6.类的嵌套遵循就近原则,即在调用外层类的属性应用格式外层类类名+this.

属性名,内嵌类的地位与外层类的成员的地位相同。

2014.11.16

1.在多继承中,一次调用祖先类的构造函数。

泛型数组列表

1.通过该类的对象声明时的构造方法和ensureCapacity()方法能设置该对象

的初始容量,但其并不是一直不变的。(数组列表满了之后会动态增加数组列

表存储空间)

2.对ArrayList表中的数据的访问(get、set)需要确定其实际大小。

3.自动装箱list.add(3)自动转换为list.add(Integer.valueOf(3))。

4.自动装箱和自动拆箱是编译器认可的而不是虚拟机。

枚举类型

1.在比较两个枚举类型的值时,永远不需要调用equals()方法,而直接使用==。

反射

1.反射机制的作用

1)在运行中分析类的能力;

2)在运行中查看类对象,例如,编写一个toString()供所有类使用;

3)实现通用的数组操作代码;

4)利用Method对象,这个对象很像C++的函数指针(返回方法的地址)。

2.如同一类的对象表示一个具体实例对象的属性一样,Class类的对象表示一个类的属性。

3.尽量不要使用Method对象的回调功能。使用接口回调会使得代码的执行速度更快,更易于维护。

继承设计的技巧

1.将公共的操作和域放在超类;

2.不要使用受保护的域:一、子类的集合无限制,任何一个子类的对象均可以访问受保护的域和操作,从而破坏封装性;二、在Java语言中,在同一个包中的所有类都可以访问protected域,而不管它是否为这个类的子类。3.使用继承实现“is-a”关系;

4.除非所有继承的方法都有意义,否则不要使用继承;

5.在覆盖方法时,不要改变预期的行为;

6.使用多态,而非类型信息;

if(x is of type 1)

action1(x);

if(x is of type 2)

action2(x);

7.不要过多的使用反射(编译时不能找程序中的错误)。

线程优先级属性

1.有关线程的三个静态属性:MIN_PRIORITY(0)、MAX_PRIORITY(10)、

NORM_PRIORITY(5)。默认优先级为NORM_PROORITY(5)。

2.新建线程优先级确定原则:

1)新建线程将继承创建它的父线程的优先级。父线程是指创建新线程对象语句的线程,它可能是程序的主线程,也可能是某一个用户自定义的线程。

2)一般情况下,主线程具有普通优先级。

3.常用方法

1)启动线程start()方法:start()方法将线程从新建状态转入可运行状态,并进入可运行状态排队。

2)定义线程操作的run()方法:用来定义线程启动后执行的操作,系统自动调用用户程序不得引用过的方法。

3)使线程休眠的方法sleep():可以使线程释放处理机资源,使优先级更低线程有机会获得处理机。

4)判断线程是否死亡的isAlive()方法:在调用stop()方法前应当判断该线程是否仍然存活。

线程的并发执行

1.注意共享变量的出现。

2.分时调度模式和抢占模式。

线程调度

1.Java虚拟机采用抢占调度模式。

2.释放处理机的几种方法

1)调整各个线程的优先级;

2)让处于运行态的线程调用Thread.sleep()方法;//使当前线程处于睡眠态

3)让处于运行态的线程调用Thread.yield()方法;//是当前可运行态中优先级

相同的线程获得处理机

4)让处于运行态的线程调用其他线程的join()方法;

3.sleep()方法与yield()方法之间的差异

两者均会释放处理机资源,sleep()方法不考虑其他线程的优先级,较低优先级的线程也有机会获得处理机;yield()方法只会将处理机让给具有相同优先级或者优先级更高的线程。

sleep()方法会抛出异常InterruptedException,而yield不会抛出任何异常。

sleep方法比yield具有更好的移植性。一般仅在做程序测试的时候用yield 来提高程序的并发性以便发现一些隐秘的错误。

线程同步机制

1.多线程环境下,由于存在资源共享从而可能造成程序运行的不确定性和其他

错误等。

容器

1.Iterator接口中的next()方法仅仅是获得当前Iterator对象所指向的容器元素的引用,删除该对象的方法为调用remove()方法删除上一个返回值。2.List对象中(表容器)允许元素重复,元素的顺序即为插入元素的顺序。访问该表中的数据的方法为get(int index):通过下标或索引访问该表中的数据,set(int index,E obj):通过下标修改指定位置的元素。

3.同数组一样List对象的索引也是从0开始。

4.Set对象的元素无序且不能重复,因此必须实现equals()方法和hashCode()方法。(TreeSet对象有序、HashSet无序)

Object:所有类的超类

1.只有基本类型不是对象(数值、字符、布尔类型),所有数组类型,无论是

对象数组还是基本类型的数组都扩展于Object类(数组为一个对象的引用)。2.在定义子类equals()方法时应当先调用超类equals()方法,再比较子类中的域。

网络基础

1.网络编程绝对不等于网站编程。

2.FTP、Email服务器具有唯一的公网地址(公网、内网)。

3.IP每一台主机提供了唯一的地址。

GUI图形界面

Java的图形界面的基本组成部分是Component、

在Java的图形界面中窗口大小的单位是像素。

Panel与Frame的区别在于前者不能作为一个窗口独立显示。

Panel类对象的坐标是相对于外层的Frame对象。

《Java学习笔记 良葛格》 fuluA word版

《Java学习笔记良葛格》 fuluA word版 介 Ant 简 A Ant 的全名是 Another Neat Tool,是由 James Duncan Davidson 在觉得Make 工具无法满足他的 Java 构建(Build)需求下所编写出来的工具,目前由Apache Software Foundation 持续进行开发。根据官方网站上的 FAQ 中有关什么是 Apache Ant(What is Apache Ant)中的回答:

Ant is a Java-based build tool. In theory, it is kind of like Make, without Make’s wrinkles and with the full portability of pure Java code. 简单地说,Ant 就像是 Make 工具,一个为 Java 应用程序所量身定做的构建工具。 A.1 Ant 设置 对于没有使用过 Make 工具的初学者来说,想象一下如何管理源代码?如何处理 Classpath 的问题?如何将编译过后的文件指定至某个目录?如何 将.class 包装为 .jar 文件?…… 这一切都可以通过 Ant 来完成!您不必重复地使用 javac、copy、cd 和 java 等指令来达到这些目的,只要编写好一个以 XML 组织的构建文件(buildfile),然后下 ant 指令,上述所有的问题就可轻松地解决。 或许有人会说这些需求一些 IDE 也可以办到,这并不是正确的说法。Ant 并不取代 IDE,它增强了 IDE,也没有 IDE 可以取代 Ant,它们是互补的,不是相互取代的。 简单地归纳一下 Ant 可以自动完成的任务: 编译 Java 源代码 建立 jar、 war、zip 文件

java面试 项目经验描述

面试进行曲之技术面试(项目经验) 收藏 在前期已经讲过怎样分析自己,对自己进行一个准确的定位,选择一个合适的求职方向!并结合自己的实际个人情况来写一份针对性很强的个人简历!个人简历就是个人的广告!好的简历可以更受到用人需求单位青睐!好的简历才能让你获得面试的机会!我们还针对面试列出了j2ee方面的知识点!不管是笔试还是面试都是会考到这些非常重要的知识点!面试的技术内容并不会有想象中的那么难,主要注重基础和细节!细节决定一切!所以列罗的那些知识点是需要下功夫去准备的!当然列罗的那些知识点只是一些在面试中经常会出现的问题集!每家企业都可能超出这些知识点的可能(就不要骂我了)!自己去准备吧! 技术方面的考核通常分为笔试,技术面试;其中技术面试又分为专业知识面试和项目经验考核。应该说来笔试和专业知识面试都是考核你对某方面(j2ee或.net)知识的掌握和熟练程度!而项目经验考核则是看你是不是拥有项目经验,是不是适合企业的用人需要,是不是需要企业为你付出培养的成本,是不是你能够马上投入到工作中去.企业是以你的项目经验作为衡量你的工资标准的!所以就是会出现有些同学可能在学校学习成绩很好而企业给他开的工资并不高,而有些同学的学习成绩一般反而得到高工资的原因!专业知识的考核只是企业了解你具有这方面的专业素养和能力!其实有时笔试成绩差一点或者你感觉在做笔试题的时候有些题目没有做出来或答错了并没有关系的。在技术面试的时候,在回答专业知识方面的题目不够理想,也并不起决定性的作用!总之笔试和专业知识面试的答题达到企业要求的70%就可以了!当然如果你在专业知识方面表现的太差,考官对你也就没有多大的兴趣了!但是最能决定企业下定决心录用你的关键在于你的项目经验(排除企业特别强调英文等其它方面能力外)。说了这么多好像都没有说到正题,这是因为让大家更清楚的了解回答好项目经验方面的问题是多么的重要。而这方面又正好是刚从学校出来的学员十分薄弱的,并且针对这方面介绍也十分少!下面我们就来谈谈面试中关于项目经验的问题及应该从哪些方面进行回答! 问题一、请简单的介绍一下你自己吧! 分析:这是在任何面试中都会遇到一个题目,看起来这个问题是十分简单的,但是往往我们并不知道考官问这个题目是希望从你的回答中获得什么信息!所以我们就很容易走题,跑题,不入正题!不能马上就吸引考官。请记住抓住面试的每一个机会来推销自己。但是往往我们不知道从哪里谈起。所以我们得先了解考官想要获取什么信息呢? 1.你的从业时间你从事相关的工作有多长了 2.你的教育背景你是否受过良好的教育 3.你的工作经验你是否有过具有一定的工作经验 4.你的项目经验你是否有过丰富的项目经验 5.你与众不同之处你是怎么进行项目开发的,有什么特别之处,或者你在哪些项目中取得过哪些成功,或者有哪些自己觉得骄傲的地方

Java入门基础代码

例1-1 DoubleVariableDemo.java class DoubleVariableDemo{ public static void main(String args[]){ double dRadius=2.0d; double dArea=Math.PI*dRadius*dRadius; System.out.println("半径为2的圆的面积:"+dArea); } } 例1-2 BooleanConstantDemo.java class BooleanConstantDemo{ public static void main(String args[]){ final boolean BFLAG=true; if(BFLAG) System.out.println("Always Print Out Me!"); else System.out.println("Never Print Out Me!"); } } 例1-3 DecisionDemo.java class DecisionDemo{ public static void main(String args[]){ short x=1,y=2,z; // 错误代码 // z = x + y; // 正确代码 z=(short)(x+y); System.out.println(z); } } 例1-4 IntegerConstantDemo . java class IntegerConstantDemo{ public static void main(String args[]){ final byte nMaxValue_1=100; final short nMaxValue_2=200; final int nMaxValue_3=300; final long nMaxValue_4=400; System.out.println("整数常量的nMaxValue_1值"+nMaxValue_1); System.out.println("整数常量的nMaxValue_2值"+nMaxValue_2); System.out.println("整数常量的nMaxValue_3值"+nMaxValue_3); System.out.println("整数常量的nMaxValue_4值"+nMaxValue_4); // nMaxValue_1 = nMaxValue_1 + 1; 不能更改常量的值

Java基础学习心得笔记

Java基础学习心得笔记 对于很多只会C语言的初学者而言,面对java基础语法学习,反而感觉很难,其实其中最大的问题不是语法难,而是一种编程思想的转变。面向过程就是把你的代码封装成函数,然后依次去做一件事情,面向过程是把你要做的事情抽象成对象,告诉对象去做。所以要想学好java入门,必须知道类和对象的概念。 类是对生活中事物的抽象描述,比如人类,动物类,交通工具类;对象即是对类的具体实例化,比如张三是人,猫是动物,飞机是交通工具(对象-----类)。Java基础入门学习路线可以总结为四步走: 1.java开发环境的搭建; 2.java初级之基础语法学习(80%类似C语言); 3.java中级之面向对象编程学习(重点); 4.java中级之应用编程学习。 第一步:JDK软件开发包时java软件开发环境, 包括jre运行环境和jvm虚拟机,在oricle官网下载javaSE版本JDK包;配置好环境变量就可以使用了。 第二步:java初级语法学习, 1.基本数据类型整形,字符型,字节型,长整形,短整形,浮点型,双精度,布尔型;

2.运算符+,-,*,/,%等; 3.控制流(while,switch,if else); 4.数组的定义方式。 此阶段基本无难度,只要了解练习例题。 第三步:java面向对象学习, 1.类和对象; 2.java语言三大特性,封装、继承、多态; 3.一些关键字学习(static,final,abstract,extends)等。 这是重点,大家根据知识点一步步研究学习才是关键。 第四步:java应用编程, 例如:文件IO,集合(类似C语言数据结构),异常处理,线程,网络,JDBC数据库操作等,都是掌握面向对象以后,在查找不同的类使用类中不同的方法达到应用的效果,所以并不会很难。等基础语法掌握了就可以继续后面框架学习(java web方向,android学习),相信明确思路你会豁然开朗,更有学习动力。 以上没有具体的实例和知识点讲解,分享的只是完全没接触过java的初学者自学java的思路和学习的流程,应该把握的重点,希望大家有所帮助。 如果你想学好Java,找一家靠谱的培训机构,能让你的学习事半功倍。

课工厂陈璇老师课程笔记 第1课:初识Java语言

初识java 目标: 任务一:使用文本编辑器开发java程序 任务二:使用Myeclipse开发java程序 了解java虚拟机(JVM)与跨平台原理 熟练掌握安装、配置JDK开发环境(重点) 熟练掌握使用记事本开发java程序(重点) 理解java编译原理 会使用MyEclipse开发java程序(重点) 为什么学习Java 关注Tiobe排行榜 Java的发展 1995年5月JAVA1.0 1997年2月JAVA1.1 1998年12月JAVA1.2(我们现在说的J2)三个开发领域J2SE、J2EE、J2ME 2004年9月JAVA5 2005年6月JAVA6 中间9年,Sun被Oracle收购 2011年7月JAVA7 2014年3月JAVA8 课程里使用JAVA7,目前为最稳定的版本 SE 标准版 ME 微型版 EE 企业版

开发环境搭建与配置 bin :里提供JDK 的命令文件、编译器、解释器 jre :java runtime evirment java 运行环境 lib :类库资源 src.zip :里边为JDK 提供的源码 安装完后配置 jdk 的路径D:\Program Files\Java\jdk*\bin 把路径复制粘贴在环境变量path ,光标放到最开头粘贴,要加一个英文的分号隔开后面的 cmd 验证 java -version 有版本提示为成功 基础核心J2SE 面向对象、API 、JVM 、等 J2EE JSP 、EJB 、服务、等 J2ME 移动设备、游戏、通 信、等

开发Java 程序 用记事本制作一个*.java public class Hello{ public static void main(String[] args){ System.out.println("hello world!!!"); } } 在CMD 里编译 javac *.java 编译 -- *.class

Java一年工作经验程序员个人简历模板

个人简历 【基本资料】 姓名xxx 性别男 年龄22 婚姻状况未婚 民族土家族籍贯湖南省张家界市 毕业院校长沙理工大学专业计算机科学与技术 学历本科联系电话 工作经验1年Email xxxxxxxx@https://www.wendangku.net/doc/ef12896721.html, 【教育经历】 2007/09-2011/06 长沙理工大学计算机科学与技术 【自我评价】 计算机软件设计与开发专业,1年Java、JavaScript编程语言程序开发经验,熟悉J2EE架构;熟练使用Struts、Hibernate、Spring进行Web开发及Web服务开发;熟悉使用Oracle一种以上数据库,有良好的数据库操作和维护经验;有良好的团队交流和合作意识,以及一定的工作压力承受能力,并具有很好的分析问题与解决问题的能力,对IT领域的软件开发和设计工作有浓厚的兴趣. 【IT技能】 编程语言熟悉:Java,Jsp,JavaScript,Ajax; 数据库熟悉:Orecle; 了解:SQLServer,MySQL 开发工具熟练运用Eclipse,Dreamweaver,Svn等开发工具 熟练掌握Tomcat等Web容器以及J2EE容器的配置以及部署 核心技术熟悉Struts+Spring+Hibernate联合开发 【求职意向】 目标职能JAVA软件开发工作性质全职 【工作经验】 2011/8--2012/10长沙友邦网络科技有限公司 所属行业计算机软件 工作职责Java初级程序员主要负责项目一些模块的编写 工作总结熟悉软件开发流程,能独完成文档的编写和模块的编码 能熟练运用J2EE企业级开发 【项目经验】 项目名称易购客户关系管理系统 开发时间2012/6 -- 2012/10 团队人数 5

Java学习笔记

Java 程序分类 Java Application:以main()方法作为程序入口,由Java解释器加载执行。 Java Applet:没有main()方法作为程序入口,由浏览器或Appletviewer加载执行。 注释 一行中‘//’后的内容为注释; ‘/*’和‘*/’中的内容是注释; ‘/**’和‘*/’中的内容是注释。 -javac HelloWorld.java 源文件名为HelloWorld.java,由javac编译器编译源程序,产生字节码文件(.class文件)。java HelloWorld由java解释器解释执行。 命名 如果.java 文件包含一个public 类,它必需按该类名命名。Java语言中单词拼写严格区分大小写; 类个数 一个源文件中最多只能有一个public 类。其它类的个数不限。 结构 package 语句//0或1个,必须放在文件开始 import语句//0或多个,必须放在所有类定义之前 public classDefinition //0或1个,文件名必须与该类的类名完全相同classDefinition //0或多个 interfaceDefinition //0或多个

Java开发工具集JDK----Java Development Kits Java编译器 Java运行时解释器 Java应用程序编程接口 Java文档化化工具 其它工具及资源 环境变量 Path ----外部命令搜索路径; CLASSPATH ----类资源位置搜索路径; https://www.wendangku.net/doc/ef12896721.html,ng----包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。 java.awt----包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。 java.applet----包含applet运行所需的一些类。 https://www.wendangku.net/doc/ef12896721.html,----包含执行与网络相关的操作的类。 java.io----包含能提供多种输入/输出功能的类。 java.util----包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数。 JDK中提供了一个文档自动生成工具javadoc,在自定义类中public的成员前以/**…*/形式加入的注释内容均可被自动提取到生成的说明文档中。 用法:somepath\javadoc source.java Java分隔符组成 分号--“;”、花括号--“{}”、空格--“”

Java学习笔记:JSONObject与JSONArray的使用

Java不像PHP解析和生产JSON总是一个比较痛苦的过程。但是使用JSONObject和JSONArray会让整个过程相对舒服一些。 需要依赖的包:commons-lang.jar commons-beanutils.jar commons-collections.jar commons-logging.jar ezmorph.jar json-lib-2.2.2-jdk15.jar 1. 创建一个JSONObject对象: package https://www.wendangku.net/doc/ef12896721.html,.video.resource.controller.web; import java.util.ArrayList; import java.util.HashMap; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class Test { public static void main(String[] args) { //JsonObject和JsonArray区别就是JsonObject是对象形式,JsonArray是数组形式 //创建JsonObject第一种方法 JSONObject jsonObject = new JSONObject(); jsonObject.put("UserName", "ZHULI"); jsonObject.put("age", "30"); jsonObject.put("workIn", "ALI"); System.out.println("jsonObject1:" + jsonObject); //创建JsonObject第二种方法 HashMap hashMap = new HashMap(); hashMap.put("UserName", "ZHULI"); hashMap.put("age", "30"); hashMap.put("workIn", "ALI"); System.out.println("jsonObject2:" + JSONObject.fromObject(hashMap)); //创建一个JsonArray方法1 JSONArray jsonArray = new JSONArray(); jsonArray.add(0, "ZHULI"); jsonArray.add(1, "30"); jsonArray.add(2, "ALI"); System.out.println("jsonArray1:" + jsonArray); //创建JsonArray方法2 ArrayList arrayList = new ArrayList();

Java基础入门教程(适合所有初学者)

第1章 Java语言概述与面向对象思想 1 1.1 Java语言的发展 1 1.1.1 Java语言的产生 1 1.1.2 Java语言的发展 1 1.2 Java语言的特点 2 1.3 面向对象与面向过程的差异 3 1.3.1 面向过程思想回顾 4 1.3.2 面向对象思想介绍 4 1.4 面向对象程序设计中的主要概念和特征 4 1.4.1 主要概念 5 1.4.2 主要特征 5 *1.5 Java与C++的差异 5 1.6本章小结5 习题 5 第2章 Java语言开发环境 6 2.1 JDK 6 2.1.1 JDK的简介6 2.1.2 JDK的构成6 2.1.3 JDK的使用6 2.2 IDE 8 2.2.1 IDE简介8 2.2.2 JBuilder 9 2.2.3 Eclipse 9 2.2.4 相关资源9 2.3 Project管理9 2.3.1 Project的含义9 2.3.2 可行的Project组织模式9 2.3.3 主要开发工具的Project目录10 2.4 本章小结10 习题10 第1章 Java语言概述与面向对象思想 1.1 Java语言的发展 1.1.1 Java语言的产生以介绍面向对象编程的基本概念、基本理论为重点,结合Java语言的语法规则、编程特点和设计思想、强调容易发生错误和编程应注意的地方,使学生能对Java 技术有一个总体了解,通过本课程学习,使学生掌握Java语言的基础知识,理解和掌握面向对象程序设计的基本思想,熟练地使用Java语言进行程序的编写、编译以及调试工作 上世纪90年代初期,Sun公司在研究一种适用于未来的智能设备的编程语言,该语言要具有一些新的特性,以避免C++的一些不足。 该语言起初命名为Oak,来源于语言作者Gosling办公室窗外的一棵橡树(Oak)。后来在注册时候遇到了冲突,于是就从手中的热咖啡联想到了印度尼西亚一个盛产咖啡的岛屿,中文名叫爪哇,Java语言得名于此。 随着Internet的迅速发展,Web应用日益广泛,Java语言也得到了迅速发展。1994年,Gosling

java学习笔记_Scokect

1Java Socket 可实现客户端--服务器间的双向实时通信。 https://www.wendangku.net/doc/ef12896721.html,包中定义的两个类socket和ServerSocket,分别用来实现双向连接的client和server端。 2Socket 通信实现方法 2.1服务器端(非多线程) 1.用指定的端口实例化一个SeverSocket对象。服务器就可以用这个端口监听从客 户端发来的连接请求。 2.调用ServerSocket的accept()方法,以在等待连接期间造成阻塞,监听连接从 端口上发来的连接请求。 3.利用accept方法返回的客户端的Socket对象,进行读写IO的操作 4.关闭打开的流和Socket对象 /** * 基于TCP协议的Socket通信,实现用户登录,服务端 */ //1、创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口 ServerSocket serverSocket =newServerSocket(10086);//1024-65535的某个端口 //2、调用accept()方法开始监听,等待客户端的连接

Socket socket = serverSocket.accept(); //3、获取输入流,并读取客户端信息 InputStream is = socket.getInputStream(); InputStreamReader isr =newInputStreamReader(is); BufferedReader br =newBufferedReader(isr); String info =null; while((info=br.readLine())!=null){ System.out.println("Hello,我是服务器,客户端说:"+info); } socket.shutdownInput();//关闭输入流 //4、获取输出流,响应客户端的请求 OutputStream os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(os); pw.write("Hello World!"); pw.flush(); //5、关闭资源 pw.close(); os.close(); br.close(); isr.close(); is.close(); socket.close(); serverSocket.close(); 2.2 客户端 1.用服务器的IP地址和端口号实例化Socket对象。 2.调用connect方法,连接到服务器上。 3.获得Socket上的流,把流封装进BufferedReader/PrintWriter的实例, 以进行读写 4.利用Socket提供的getInputStream和getOutputStream方法,通过IO 流对象,向服务器发送数据流 5.关闭打开的流和Socket。 //客户端 //1、创建客户端Socket,指定服务器地址和端口 Socket socket =newSocket("127.0.0.1",10086); //2、获取输出流,向服务器端发送信息 OutputStream os = socket.getOutputStream();//字节输出流 PrintWriter pw =newPrintWriter(os);//将输出流包装成打印流 pw.write("用户名:admin;密码:admin"); pw.flush();

JavaEE课堂笔记f

1.Struts2在jsp页面中使用标签实现对集合的迭代,其中var属性表示要迭代的集合对象。标签实现下拉列表的功能,其中listKey属性表示其生成的HTML代码option 标签的value,listValue属性表示用作字面显示的值。标签会定义一个新的Bean,而scope属性指定将这个Bean放到相应的作用域。 2.MVC设计模式包括Model(模型)、View(视图)和Controller(控制器)三个层。Model 层一般是指Java Bean,View层一般是用jsp页面实现,Controller是控制跳转的,一般用Servlet 或相似功能的组件实现。而Struts2框架的核心控制器是StrutsPrepareAndExecuteFilter过滤器。 3.Hibernate配置文件中包括了数据库连接信息、数据库方言、其他属性等信息,不包括数据库表和实体类的ORM信息。在众多属性中,show_sql属性可以设置是否在控制台显示最终生成的SQL语句。 4.Struts2全局国际化,在创建资源文件后需要在struts.xml配置文件中添加对这些资源文件基本名的引用。 5.Spring的面向方面编程可以让我们将程序中涉及的分散的公用问题集中解决。 6.Http协议是一种无状态的协议,它不能记录用户的状态。我们可以通过get和post方法发送数据,其中get方法对请求参数有长度的限制,而post方法没有。 7.j sp中的EL可以访问JavaBean中存储的数据,EL表达式包括requestScope、sessionScope、applicationScope、param、pageContext等隐式对象。在Struts2中,EL表达式可以直接访问Action Bean中属性的值。 8.HQL和SQL语法相似,但HQL是面向对象的,而SQL是面向关系型数据库的。HQL的关键字不区别大小写,而语句中的实体类名、对象名、属性名等都是区别大小写的,这一点和Java语言类似。 9.Servlet在加载后的生命周期分为实例化、初始化、服务和销毁四个过程。 10.JSP的标准动作能实现页面转发的功能。 11.Servlet中的PrintWriter对象可以输出信息,该类型的对象可以通过response.getWriter()方法取得。 12.DWR一个能帮助我们简化Ajax开发的开源框架,在使用时,需要在dwr.xml配置文件中为JavaScript脚本暴露相应的Java类。 13.在struts.xml配置文件中标签用于配置要转向的下一个目标页面。 14.Hibernate将JDBC作了轻量级封装,使得Java程序员可以随心所欲的使用面向对象的编程思想来操纵数据库,但其本质上还是使用JDBC去和数据库进行交互。 15.SSH是JavaEE开发的经典搭配,Spring框架可以对其他框架进行整合,持久化层更可以有多种选择,除了Hibernate外,像MyBatis这样的开源框架也很受欢迎。 16在软件设计上Struts2没有跟Servlet API或struts有着紧密的耦合,因此在Struts2中可以不必使用Servlet API所提供的类和接口,但如果要使用,也可以通过多种方式实现(ServletActionContext类或实现相应接口)。同时Struts2的Action类也不用必须继承或实现struts框架提供的任何类或接口。 17Servlet API中,HttpServletResponse接口的sendRedirect()方法可以将浏览器重定向到另一个URL。而HttpServletRequest接口的getSession()方法可以取得本次会话的HttpSession类型的对象,HttpServletRequest接口的getParameter()方法可以获取客户端请求参数的数据。18依赖注入(DI)是一种开发模式,可以解除或减轻各组件之间相互依赖,相互制约的关系。

JAVA学习

1、JA V A消息对话框显示文本信息: Import javax.swing.JOptionPane; JOptionPane.showMessageDialog(null,”text”,”title”,icon); ●先要导入javax.swing.JOptionPane类,如果使用 javax.swing.JOptionPane.showMessageDialog(null,”text”,”title”,icon); 则不需要导入。 ●“Null”表示显示在屏幕正中央。 2、用输入对话框获取输入(假设输入字符串): String input = JOptionPane.showInputDialog(null,”MentionText”,”title”,icon); ●“Null”表示显示在屏幕正中央。 3、数字型字符串转化为int型: Int intvalue = Integer.ParseInt(intString); ●如果不要该类强制转化则转化为ASIC码。 ●Double型:Double.parseDouble(doubleString); ●以上两个类都包含在https://www.wendangku.net/doc/ef12896721.html,ng中,可自动调用。 4、Math类: ● Math.pow(a,b)计算a的b次方 ● Math.random返回一个随机数[0,1) ●三角函数方法都以弧度为单位 ● Math.toRadians(double argDeg)将角度转化为弧度

● Math.toDegrees(double argRad)将弧度转化为角度 ● Math.PI常数π ● Math.E自然对数e ● Math.exp()自然对数求幂 ● Math.log()自然对数为底 ● Math.log10()以10为底 ● Math.sqrt()开根号 ● Math.ceil()向上取整 ● Math.floor()向下取整 ● Math.right()向零取整 ● Math.round()四舍五入 5、并不是所有的类都需要main方法,Math类和JOptionPane类就没有main方法。这些类所包含的方法主要是为了供其他类调用。 6、声明数组: DataType[] arrayName; ●声明数组时系统并未给其分配内存空间,直到创建数组: arrayName = new DataType[arraySize]; ●也可合并为一句: DataType[] arrayName = new DataType[arraySize]; 7、数组被创建后,在赋值之前,其默认值是约定的: 数值型为0;布尔型为False;char型为“\u0000” 8、数组下标基于0,赋值使用“{}”

java的学习计划[工作范文]

java的学习计划 篇一:最新java学习计划 java笔记-从菜鸟到j2se 精通j2ee的高手之路(对初学java的人有用) 进来的所有人,不管你是不是懂点java皮毛,还是一窍不通的,如果你选择看完我下面的话和每天下载我的笔记代码观看学习。那相信08年底既是属于我的成功也是属于你的成功。对了,不屑一顾的到此可以离开了。先说下我的学习的东西和我准备如何学习的计划。目前手里购买了几套视频教程,删减下来最后定为两套必学的材料。(马士兵的所有教程和 MLDN所有教程) 12月份买了 些盗版光盘,细读之后安排了如下计划。 08年学习计划方案 07年9月底到08年2月初,通过各类途径,以完成对j2ee各类知识的初步了解. 现开始制定最终冲刺方案,该方案开始时间2月中旬,结束时间9月初.较去年vc最终方案多了 2月. 具体定制如下: 一:4个月基础方案 用1个半月时间,对11章节基础和基础相关视频一个一

个复习并完成里面知识代码.同时对大量的知识点做好相应的笔记,包括本子上和电脑上的笔记.务必达到每个知识点说道就能知道,不知 道也能立刻找到.注意配合中文帮助使用. 利用半个月时间,对在线聊天系统视频复习,做到每一个章节都能很快想到以前的知识点.如果不 熟悉一定要回头复习11章节内容. 坦克大战包括3部分,合理安排复习时间,以求完全精通代码流程.时间不得超过1个半月,此部分 必须建立在前面两项学习稳固之后方可学习. 最后半个月结合以前对图形游戏的理解,完成自我设计的,自我所能掌握的知识内的一款在线图 形游戏. 注:4个月时间务必做到对java 基础的全面运用,对eclipse的熟练操作,对java正式规格书写 完美. 二:2个半月web学习方案 3到5天时间,对oracle MySQL数据库的复习,做到对简单的命令直接背下来,繁琐的命令找到帮 助手册或自己写下来,以供日后使用时直接查找. 10天时间,复习jsp_servlet视频,结束对eclipse使用. 半个月时间学习lomboz,针对JDBC_MySQL_BBS项目.务

Java工作笔记(必看经典)

JAVA的面向对象编程--------课堂笔记 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物皆对象) 所有的事物都有两个方面: 有什么(属性):用来描述对象。 能够做什么(方法):告诉外界对象有那些功能。 后者以前者为基础。 大的对象的属性也可以是一个对象。 为什么要使用面向对象: 首先,面向对象符合人类看待事物的一般规律。 对象的方法的实现细节是屏蔽的,只有对象方法的实现者了解细节。 方法的定义非常重要。方法有参数,也可能有返回值。 注意区分:对象(本身)、对象的实现者、对象的调用者。 分析对象主要从方法开始。 我们通过类来看待对象,类是对象的抽象。 其次,采用面向对象方法可以使系统各部分各司其职、各尽所能。 对象之间的耦合性一定要低(比如不同硬盘和不同主板之间的关系)。这样才能使每个对象本身做成最好的。 对于对象的要求:高内聚、低耦合,这样容易拼装成为一个系统。 实现高内聚就是要最大限度低提高复用性(复用性好是因为高内聚)。 可复用性是OOP的基础。 比较面向过程的思想和面向对象的思想: 面向过程的思想:由过程、步骤、函数组成,以过程为核心; 面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。 面向过程是先有算法,后有数据结构。 面向对象是先有数据结构,然后再有算法。 在用面向对象思想开发的过程中,可以复用对象就进行复用,如无法进行复用则开发新的对象。 开发过程是用对个简单的对象的多个简单的方法,来实现复杂的功能。 从语法上来看,一个类是一个新的数据类型。 在面向对象编程中,除了简单数据类型,就是对象类型。 定义类的格式: class Student{ 代码 } 注意类名中单词的首字母大写。 实例变量:定义在类中但在任何方法之外。(New出来的均有初值) 局部变量:定义在方法之中的变量。

Java 项目经验

Java项目经验 Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须 掌握如下要点: 1、掌握项目开发的基本步骤 2、具备极强的面向对象的分析与设计技巧 3、掌握用例驱动、以架构为核心的主流开发方法 没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如何思考!你必须学会假如你是架构师,你该如何思考!你必须掌握针对某个特定问题领域的分析方法! 关于基础知识:你可以看看这些名词或知识点,看是否能说出个一二三四来。 JavaSE ----基本语法、数据类型、操作符等:int、long、Integer、Long、if、else、for、while ----面向对象:class(类)、Object(对象)、instance(实例)、state(状态)、behavior(行为)、field、method、new、可见性(访问控制)、attribute、property、package、import、static variable、class variable、instance variable、heap、method area、stack、GC(垃圾回收)、override、overload、对象转型(casting)、多态、this、super ----异常处理:理解编译期错误和运行期错误的区别、Exception、RuntimeException、checked exception、unchecked exception、try、catch、finally、throw new XXXException、throws XXXException、异常处理的基本原则 ----数组与集合:数组的定义和使用方法、Collection、List、Set、Map、ArrayList、HashSet、HashMap、Iterator、equals、hashCode、Comparable、Comparator ----常用类:String、intern、常量池、StringBuffer、java.util.Date、SimpleDateFormat、Regex(正则表达式) ----反射机制:Class、Method、Field、invoke、newInstance、BeanUtils(apache-commons)、PropertyUtils (apache-commons) ----输入输出流:InputStream、OutputStream、Reader、Writer、Adapter设计模式与原始流类、Decorator 设计模式与包装流类、对象序列化和反序列化 ----多线程:Thread、Runnable、sleep、wait、notify、synchronized、lock Servlet和JSP ----HttpServlet、doGet、doPost、HttpServletRequest、HttpServletResponse、request.getParameter()、request.setAttribute()、request.getAttribute()、request.getSession()、ServletContext、Filter、web.xml、tomcat、forward与redirect、http协议的无状态性、cookie、JSP Scope Object、 HTML与JavaScript ----你需要能够理解常见的网页标签、理解在网页中引入JavaScript的方法、以及JavaScript的基本语法与使用方法

java基础代码大全

/* 1. 打印:-------------------------------------------------- 2. 求两个浮点数之商。 3. 对一个数四舍五入取整。 4. 判断一个数是否为奇数 5. 求一个数的绝对值。 6. 求两个数的最大值。 7. 求三个数的最大值。 8. 求1-n之和。 9. 求1-n中的奇数之和。 10. 打印自2012年起,n年内的所有闰年。 11. 打印n行星号组成的等腰三角形。 12. 求两个正整数的最小公倍数。 13. 判断一个数是否为质数。 14. 求两个正整数的最大公约数。 15. 求一个正整数n以内的质数。 16. 求一个正整数n以内的质数。。 17. 分别利用递推算法和递归算法求n! 。 */ class A { static void f(){ System.out.println("----------------------");//1.打印:----------- } static double quzheng(double a){ int b; System.out.println((b=(int)(a+0.5)));//2.求两个浮点数之商。 return(b); } static double qiushang(double a,double b){ //3.对一个数四舍五入取整System.out.println((a/b)); return(a/b); } static boolean odd(int c){ //4.判断一个数是否为奇数if(c%2==0){ return(false); } else{ return(true); } } static int juedui(int d){ //5.求一个数的绝对值。 if(d<0){

java程序员简历模板(保留了项目经验、工作经验、技能专长)

【基本信息】姓名: 出生日期: 性别: 婚姻状况: 年龄: 身高: 工作年限: 计算机: 目前所在地: 英语水平: 第二外语: 最高学历: 户囗所在地: 英语级别: 水平: 专业: 目前岗位: 软件工程师/程序员 目前行业: 计算机软件及服务

意向地区: 深圳市 意向行业: 计算机软件及服务目前月薪: 期望月薪: 住房要求: 面议 可到岗时间: 一周内 意向岗位: 高级软件工程师/高级程序员/软件工程师/程序员 【联系方式】 联系电话: 公司电话: 个人主页: 【工作经验】 2010-08 ~ 2011-08JAVA中级开发工程师手机号码: Email: 通信地址: 在职期间主要负责对麦当劳食品物流管理系统的升级,业务的分析和整理。

与SA一起完成系统分析工作和制定技术方案。 根据客户的需求文档进行分析,提出解决方案,并快速完成任务。 2008-08 ~ 2010-08JAVA开发工程师 在职期间主要负责对麦当劳食品物流管理系统的开发和维护。 【工作经历详细介绍】 夏辉物流管理系统 项目描述: 夏辉物流管理系统(麦当劳食品物流管理系统),包含基础信息设置,采购,销售,仓管,运输管理,财务接口等模块。该项目前台采用ACHIEVO HAVI团队开发的WAF框架开发。后台采用QUERTZ进行任务管理和调度,业务逻辑采用高效的MYSQL存储过程编写。前台后台独立布置,系统设计成灵活的可扩展的数据导入导出、JOB运行配置等。 使用技术: jsp、javaBean,servlet,,JDBC,struts,hibernate。 开发环境: WindowXP,Tomcat 6."0,Mysql。 责任描述:1)带领小组(2人)负责销售、运输、财务模块开发,处理部分系统性能问题。 2)参与客户需求分析,系统设计,文档编写,数据字典设计,核心代码编写,测试。 项目经验总结: 1)代码规范化,每个人都照公司的规范编码,有利于代码阅读和维护。

相关文档