java从入门到精通(韩顺平视频)笔记整理2

合集下载

最新韩顺平__jsp和selverlt原完整版课件_笔记_.doc

最新韩顺平__jsp和selverlt原完整版课件_笔记_.doc

最新韩顺平__jsp和selverlt原完整版课件_笔记_.doc◆背景知识介绍J2EE的13种技术java->servlet->jsp [技术总是有⼀个演变过程]zip粘贴到word设置◆回顾⼀下我们现有的技术java 基础(⾯向对象,集合,界⾯,线程,⽂件,⽹络)jdbc (java 的数据库编程)oracle / mysql / sqlserverhtml css javascript (web 开发) ->⽹页设计xmlserlvet+jsp ->java web开发[使⽤java技术做web开发]◆java ee 体系的介绍◆servlet项⽬演⽰◆web 开发介绍①静态页⾯(html)②动态页⾯1.⽤户可以输⼊数据,和页⾯交互(注册,购物,发帖⼦,付款...)2.不同时间打开页⾯,内容是变化.3.⽬前⽐较流⾏的左动态页⾯的技术( servlet/jsp , php , /doc/b83fffd680eb6294dd886c36.html , asp, cgi )◆动态⽹页技术的⽐较(了解)◆bs 和cs的⽐较(1)BS:browser server 浏览器服务器(2)cs client server 客户服务为什么需要的web服务器/web究竟是⼲什么的?模拟⼀个web服务器MyWebServer.javaimport java.io.*;import /doc/b83fffd680eb6294dd886c36.html .*;public class MyWebServer{public static void main(String []args) throws Exception{ServerSocket ss=new ServerSocket(80);Socket s=ss.accept();//提⽰⼀句话System.out.println("在9999 上等待连接...");OutputStream os=s.getOutputStream();BufferedReader br=new BufferedReader(new FileReader("d:\\hello.html"));String buf="";while((buf=br.readLine())!=null){os.write(buf.getBytes());}//关闭流br.close();os.close();s.close();}}◆通过tomcat来讲解BS结构◆安装tomcat服务器(1)解压即可(2)配置①在环境变量中添加JA V A_HOME= 指向你的jdk的主⽬录(并不是bin⽂件⽬录)②在不配置JA V AHOME的前提下启动tomcat 在startup.bat的第25⾏中添加set JA V A_HOME=JKD路劲(3)启动tomcat服务器到tomcat 主⽬录下bin/startup.bat(4)验证是否安装成功http://localhost:8080(8080是默认端⼝如果该端⼝已经被占⽤需要修改端⼝)◆tomcat安装后问题解决(1)tomcat⽆法正常启动的原因分析1.JA V A_HOME 配置错误,或者没有配置2.如果你的机器已经占有了8080 端⼝,则⽆法启动,解决⽅法(1) 你可以8080 先关闭netstat –annetstat –anb 来查看谁占⽤该8080(2) 主动改变tomcat的端⼝.到conf/server.xml ⽂件中修改server.xml的端⼝号)protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"/>(3) 能够正常启动,但是会导航到另外⼀个页⾯.去修改⼯具->管理加载项,把默认的导航给禁⽤即可.(4) 在访问tomcat时候,⼀定保证tomcat 服务器是启动◆tomcat的⽬录结构⽂件bin: 启动和关闭tomcat的bat⽂件conf: 配置⽂件-->server.xml: 该⽂件⽤于配置和server 相关的信息, ⽐如tomcat启动端⼝后,配置Host, 配置Context 即web应⽤-->web.xml : 该⽂件配置与web应⽤(web应⽤就相当于是⼀个web站点)-->tomcat-users.xml: 该⽂件⽤户配置tomcat 的⽤户密码和权限lib⽬录: 该⽬录放置运⾏tomcat 运⾏需要的jar包logs⽬录:存放⽇志, 当我们需要去查看⽇志的时候,很有⽤!,当我们启动tomcat错误时候,可以查询信息.webapps⽬录: 该⽬录下,放置我们的web应⽤(web 站点), ⽐如:建⽴web1 ⽬录下⾯放置我们的html ⽂件jsp ⽂件..图⽚... 则web1就被当做⼀个web应⽤管理起来(?特别说明tomcat 6.0 以后⽀持tomcat 5 版本还有别的设置)work: ⼯作⽬录: 该⽬录⽤于存放jsp被访问后⽣成的对应的server⽂件和.class⽂件如何去访问⼀个web 应⽤的某个⽂件◆⾸页⾯设置及⽬录规范结构现在我们要求:把hello.html⽂件设置成该web应⽤的⾸页,则需要把web应⽤的⽬录格式做的更加规范:①在web⽂件夹下配置WEB-INF⽂件夹②在web.xml ⽂件中添加配置的代码:hello1.html③通过http://localhost:8088/web1来访问hello1.htmlweb-inf⽬录下的classes⽬录将来是存放class⽂件lib ⽬录将来时存放jar⽂件web.xml 配置当前这个web应⽤的信息.◆tomcat如何去管理虚拟⽬录需求: 当我们把web 应⽤放到webapps⽬录,tomcat会⾃动管理,如果我们希望tomcat 可以管理其它⽬录下的web应⽤?->虚拟⽬录配置我在d 盘有⼀个web应⽤.◆虚拟⽬录配置步骤:①找到server.xml⽂件②编辑host节点添加Context path在server.xml中添加:myweb2:是访问时输⼊的web名,实际取出的是web2中的资源"d:\web2":绝对路径下web2中存放资源如:hello2.html实际访问时输⼊的地址:http://localhost:8088/myweb2/hello2.html绝对路径:从根分区找某个⽂件相对路径:从该⽂件位置去找另⼀个⽂件③需要重启tomcat,才能⽣效.(因为是采⽤的dom技术讲信息加载到内存中)◆context 的⼏个属性的说明path:docbase:reloadable;如果设为ture ,表⽰tomcat 会⾃动更新web应⽤,这个开销⼤,建议在开发过程中,可以设为true, 但是⼀旦真的发布了,则应当设为false;upackW AR: 如果设为ture ,则⾃动解压,否则不⾃动解压.①:打war包cd:d/web2 然后jar –cvf web2.war *②:浏览打好的war包Deploy发布后会在webapps中⾃动⽣存改⽂件◆配置域名我们看和⼀个如何配置⾃⼰的主机名:我们在实际访问⽹站的过程中,不可能使⽤http://localhost:8080/web应⽤/资源名的⽅式去访问⽹站,实际上使⽤类似/doc/b83fffd680eb6294dd886c36.html 或者/doc/b83fffd680eb6294dd886c36.html 的⽅式去访问⽹站,这个⼜是怎么实现的呢?看看ie浏览器访问⼀个web站点的流程.实现的步骤如下:(1) 在C:\WINDOWS\system32\drivers\etc 下的host⽂件添加127.0.0.1/doc/b83fffd680eb6294dd886c36.html(2) 在tomcat 的server.xml⽂件添加主机名(3) 在d:\web3 加⼊了⼀个/WEB-INF/web.xml 把hello2.html设为⾸页⾯如果连端⼝都不希望带,则可以吧tomcat的启动端⼝设为80即可.(4) 重启⽣效◆tomcat体系的再说明图:如何配置默认主机:在tomcat/conf/server.xml ⽂件◆为什么需要servlet技术?⽐如需求:我们希望⽤户可以贴,⽤户还可以回复....这样⼀些和⽤户可以交互的功能,⽤普通的java技术就完成不了, sun 就开发了servlet技术供程序员使⽤.◆servlet的介绍①servlet 其实就是java程序(java类)②该java 程序(java 类)要遵循servlet开发规范③serlvet是运⾏在服务端④serlvet 功能强⼤,⼏乎可以完成⽹站的所有功能⑤是学习jsp基础◆tomcat 和servlet 在⽹络中的位置servlet的⽣命周期是怎样的/servlet究竟是怎样⼯作的UML 时序图帮助⼤家理解参看execel⾯试题: 请简述servlet的⽣命周期(⼯作流程)答:标准版本:①WEB服务器⾸先会检查是否已经装载并创建了该servlet实例对象。

韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全)

韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全)

java平台1、J2SE java开发平台标准版2、J2EE java开发平台企业版java程序需要在虚拟机上才可以运行,换言之只要有虚拟机的系统都可以运行java程序。

不同系统上要安装对应的虚拟机才可以运行java程序开发步骤1、编写源文件(.java)2、编译源文件为类文件(.class)可用J2SE或J2EE编译3、在虚拟机上运行注释ava文件)2、java编译器即3、java字节码文件(.class文件)4、由解释执行器即将字节码文件加载到java虚拟器(jvm)5、字节码文件(.class)就会在java虚拟机中执行对程序进行改过使之变为一个简单的加法运算程序;.case 常量n:语句n;break;default:语句;break;}*****:switch中的可用数据类型主要是:允许byte,short,int,char,enum等1、单分支控制作业:请大家看个案例[]:编写一个程序,可以输入人的年龄,如果该同学的年龄大于18岁,则输出“你年龄大于18,要为自己的行为负责!”2、双分支控制作业:请大家看个案例[]:编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18岁,要对自己的行为负责!”否则,输出“你的年龄不大这次放过你了”3、多分支控制作业:请大家看个案例[]编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行业负责,送入监狱”。

如果该同志的年龄大于10岁并且小于等于18,则输出“你的年龄也不小了,把你送少管所”。

其它情况,则输出“小孩子,下次注意”。

4、多分支控制作业:请大家看个案例[]请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,ga表示星期一,b表示星期二...根据用户的输入显示相应的信息,要求使用switch语句完成。

5、多分支控制作业:请大家看个案例[]对比switch与if语句在执行分支语句的区别。

最新韩顺平java笔记整理幻灯片课件

最新韩顺平java笔记整理幻灯片课件

servlet/jsp开发工具
普通的文本编辑器notepad,uedit32 集成开发工具jcreator,jbuilder,eclipse,editplus,netbean
servlet/jsp运行环境
Tomcat是一个免费的开源的servlet容器,它是Apache基金会的 Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司 及个人共同开发而成。
java.io.OutputStream
javax.servlet.ServletOutput
ng.Throwable
javax.servlet.UnavailableException
ng.Exception javax.servlet.ServletException
servlet中操作数据库
servlet操作数据库注意事项 需要将连接数据库的jar包,拷贝到tomcat服务器 具体有两种方法: 1)将jar包拷贝到tomcat目录下的lib文件夹里 2)在webapps目录的WEB-INF文件下建立一个lib文件夹,然后将 jar包拷贝到该文件夹下
4.因为session的各个属性要占用服务器的内存,因此软件公司都 是在迫不得已的情况下才使用
cookie vs session
1.存在的位置 cookie保存在客户端,session保存在服务器端 2.安全性 比较而言,cookie的安全性比session要弱 3.网络传输量 cookie通过网络在客户端与服务器端传输,而session保存在服务 器端,不需要传输
2.开发servlet(引入Tomcat文件夹下lib文件夹里的servlet-api.jar )
3.部署你的servlet(servlet开发流程)

jsp第2讲

jsp第2讲

LoginCl.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'LoginCl.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-<link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body>

韩顺平循序渐进学java从入门到精通(全知识点笔记整理)

韩顺平循序渐进学java从入门到精通(全知识点笔记整理)

Java韩顺平笔记第1讲内容介绍.项目演示.原理剖析1. 课程包括:java面向对象编程,java图形界面,java数据库编程,java文件i/o流,java网络编程,java的多线程2. Java历史:1990 sun 启动绿色计划 1992 创建 oak语言—> java1994 gosling 参加硅谷大会演示java功能震惊世界 1995 sun 正式发布java第一个版本,目前最新的是jdk7.03. java开发工具:记事本,jcreator,jbuilder,netbean,eclipse4. jdk包括:jre(java运行环境)java的工具:编译器javac.exe解释执行器java.exe java的类库:3600多个,常用的150多个5. 第一个程序://功能:显示―HelloWorld‖//public:表示类是公共的,一个文件中只有一个public类 //class:表示这个是一个类//HelloWorld:类名(公共类的类名,必须和文件名一样)public class HelloWorld {//一个主函数,程序的入口 public static void main (String args[]) { //执行语句System.out.println("helloWorld!"); } }6. Java源程序(.java文件)——>java字节码文件(.class文件)——>由解释执行器(java.exe)将字节码文件加载到java虚拟机(jvm)——>字节码文件(.class)就会在java虚拟机中执行l,average); } }第2讲变量.数据类型1. 在java里面int占4个字节,long占8个字节2. Java基本数据类型:整数:(byte一个字节:-128---127 int四个字节:-2147483648---+2147483647short两个字节:-32768---+32767 long八个字节:)小数(浮点):float double布尔:boolean字符:char(两个字节,可以存放汉字, char test1 ='中';)引申到字符串(类)3.在java中对char进行运算的时候,直接是当做ASCII码对应的整数4.数据不能从高精度到低精度的转换Byte<short<int<long<float<doublefloat a=3.4;是过不去的,在java中小数默认是double(双精度)的应该写成是float a=3.4f;不过可以强制转换:int a=(int)1.2; intb=(int)1.95. int a=1;int b=a+1.2; a先是往高精度转换,然后赋给b,就报错改成int a=1;double b=a+1.2; 或者int a=1;float b=a+1.2f; 就解决了第4讲流程控制1. switch case语句中,switch条件表达式的数据类型应该和后面case的类型一致2. switch case语句中,可用的数据类型主要是:byte short int char enum第5讲类与对象1. 面向对象编程-类与对象类名首字母大写类里面的元素叫类的成员变量/属性2. 类的定义package 包名;class 类名extends 父类implements接口名{成员变量;构造方法;成员方法;}3. 如何创建对象:先声明再创建Cat cat1;cat1=new Cat();一步到位Cat cat1 =new Cat();4. 引用传递类似于指针一样第8讲this 类变量1. this属于类的对象的而不是属于类的2. 5this不能在类的外部使用,只能在类定义时候使用!3. 可以用类名直接访问静态变量第9讲类方法封装1.类变量是该类的所有对象共享的对象,一改全改了2.定义语法:访问修饰符static 数据类型变量名3. public class Demo9{static int i=1;static{System.out.println("zhixingyicile");i++;}//会自动执行一次,也只有一次public Demo9(){System.out.println("ffffffff");i++;}public static void main(String args[]){Demo9 t1=new Demo9();System.out.println(Demo9.i);Demo9 t2=new Demo9();System.out.println(i);}}4.类方法(静态方法、静态函数):属于所有对象实例的5.Java中:类变量(static)原则上用类方法(static)去访问;类方法中不能访问非静态变量,就是非类变量,但是普通的成员方法可以访问静态变量(类变量)使用:类名.类方法名对象名.类方法名6.非类变量就是实例变量,属于每个对象自己的7.Java面向对象编程的三(四)大特征:封装、继承、多态(、抽象)8.抽象:把一类事物的共有的属性和行为提取出来,形成一个物理模板,此研究问题的方法就是抽象9.封装:把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。

韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全)

韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全)

java平台1、J2SE java开发平台标准版2、J2EE java开发平台企业版java程序需要在虚拟机上才可以运行,换言之只要有虚拟机的系统都可以运行java程序。

不同系统上要安装对应的虚拟机才可以运行java程序开发步骤1、编写源文件 (.java)2、编译源文件为类文件(.class)可用J2SE或J2EE编译3、在虚拟机上运行注释//单行注释/* */多行注释java内容介绍java编程可以分成三个方向:1、java se (j2se)桌面开发 java中的基础中的基础2、java ee (j2ee)web开发3、java me (j2me)手机开发java se课程介绍java面向对象编程(基础)java图开界面开发java数据库编程java文件io流编程java网络编程java多线程编程java ee基础1java面向对象编程--数据库编程-->java sejava 基础2html--css--javascript-->div+cssjava ee中级部分Servlet--Jsp-->mvc模式java ee高级部分Struts--Ejb--Hibernate--Spring--Ajax(ext,dw2)-->ssh框架java之父gosling1990 sun启动绿色计划1 | 4451992 创建oak语言-->java1994 gosling参加硅谷大会演示java功能,震惊世界1995 sun正式发布java第一个版本,目前最新是jdk7.0java开发工具记事本、(jcreator、jbuilder退出舞台了)、netbean、eclipse如何选择开发工具先选择记事本,对java有一定了解后再使用eclipse高级开发工具为什么呢?1、更深刻的理解java技术,培养代码感2、有利于公司面试java语言的特点1、java语言是简单的2、java语言是面向对象的3、java语言是跨平台(操作系统)的[即一次编译,到处运行]4、java是高性能的java第一个程序hello.java运行java程序要安装和配置jdkjdk是什么?1、jdk全称java dvevlopment kit中文java开发工具包2、jdk是sun公司开发的3、jdk包括jre(java runtime envirnment)java运行环境、一堆java工具和java基础的类库(类共3600左右,常用类在150个左右)4、可以在下载**开发安装jdk,用户执行需要安装jre配置JDK添加环境变量即可windows下配置jdk在计算机属性--高级设置--环境变量--添加PATH将JDK所在路径指定即可。

韩顺平老师java视频课程笔记1-13课

韩顺平老师java视频课程笔记1-13课

JA V A学习记录第一讲//pulic:表示这个类是公共的,一个java文件中只能有一个public类//class :表示这是一个类//Hello:类名(公共类的类名必须和文件名一致)public class Hello{//一个主函数,相当于是程序的入口public static void main (String args[]){/* 多行注释*///System.out.println("hello");int a=10;// 定义一个变量,变量名位a,它的值为10// int为4个字节,long为8个字节int b=20;int result=a+b//输出结果system.out.println("结果是"+result)}}第二讲JA V A基本数据类型四大类型整数类型小数(浮点)类型基本数据类型布尔类型字符类型1.整数类型整数类型表示一个整数,常用的整数类型有:byte, short, int, long范围:byte 一个字节-128 – 127short 两个字节-32768 - 32767int 四个字节-2147483648 – 2147483647long 八个字节一个字节= 八个byte例:一个byte0 0 0 0 0 0 0 1 最高位为符号位0表示正数,1表示负数1 1 1 1 1 1 1 1 – 0 1 1 1 1 1 1 12.小数(浮点)类型常用类型有float, double3.布尔类型可以表示:真或者假,类型是boolean4.字符类型表示单个字符,字符类型是char,chai是两个字节,可以存放汉字。

多个字符称为字符串,在java中用String表示,String属于类。

.在java中,对char进行运算的时候,直接当做ascii码对应的整数对待。

(汉字则是unic码)定义变量int a初始化变量int a = 45给变量赋值int a ; a =45基本数据类型转换int a = 1.2 错误会损失精度double a = 4 正确数据类型可以自动从低精度向高精度转换。

韩顺平循序渐进学java从入门到精通课件笔记29讲到31讲

韩顺平循序渐进学java从入门到精通课件笔记29讲到31讲

韩顺平循序渐进学java从入门到精通课件笔记29讲到31讲项目经理:1、懂技术2、懂行业图形界面(gui)1、sun已经提供了一个跨平台gui开发工具包awt提供了好多类与接口。

但有缺点《致命的一个本地化lcd》2、sun又创建了一个swing框架,解决了lcd问题。

swing是awt的升级版本。

就是继承的关系。

3、IBM认为swing消耗内存,创建了一个新的gui库,就是swt。

4、IBM为了方便开发swt程序,在swt基础上又创建出一个更易用,功能强大的图形包JFace。

我们重点学习swing。

了解awt。

做图形界面在MyEclipse下开发。

Eclipse最早是IBM附属公司oti开发的。

是开源的,可扩展的开发环境,是最流行的java 开发工具,但是不能开发java ee项目,否则需要安装MyEclipse,现在一般都安装MyEclipse,不单独安装Eclipse。

IDE 集成开发环境。

(vs2005 jcreater MyEclipse等等)开发java的IDE:NetBeans jbuilder jcreater MyEclipseswing组件一览表JFrame是Frame的子类,JButton也属于容器类的布局管理器:通过布局管理器来管理控件的大小与位置。

共五种,常用3种,流式布局管理器,边界布局管理器,网格布局管理器,卡片布局管理器,网格包布局管理器第三十讲:边界布局管理器:将容器化为东南西北中五个区域,中间区域最大。

JFrame JDialog对话框自建默认的是边界布局。

注意事项:1、不是五个部件都必须添加2、中部组件会自动的调节大小3、JFrame JDialog默认布局管理器就是BorderLayout。

/***BorderLayout布局*1继承JFrame*定义需要的组件*创建组件(构造函数)*添加组件*对窗体设置*/package com.test1;import java.awt.*;import javax.swing.*;public class Demo8_2 extends JFrame {JButton jb1,jb2,jb3,jb4,jb5;public static void main(String[] args) {Demo8_2 dd =new Demo8_2();}public Demo8_2(){//创建组件jb1=new JButton("中部");jb2=new JButton("北部");jb3=new JButton("东部");jb4=new JButton("南部");jb5=new JButton("西部");//添加各个组件this.add(jb1,BorderLayout.CENTER);this.add(jb2, BorderLayout.NORTH);this.add(jb3, BorderLayout.EAST);this.add(jb4,BorderLayout.SOUTH);this.add(jb5, BorderLayout.WEST);//设置窗体属性this.setTitle("这是一个演示窗体");this.setSize(200,200);this.setLocation(500, 500);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}}流式布局flowLayout,从左到右跟网页差不多注意事项:1、流式布局不限制所管理组件的大小,允许他们有最佳大小2、当容器被缩放时,组建的位置可能发生变化,但是组建的大小不发生变化(做编程时,通常不许窗口大小变化)3、默认组件是居中对齐的package com.test1;import java.awt.*;import javax.swing.*;;public class demo8_3 extends JFrame{//定义需要组建.JButton jb1,jb2,jb3,jb4,jb5,jb6;public static void main(String[] args) {demo8_3 demo=new demo8_3();}//构造函数public demo8_3(){//创建组件jb1=new JButton("关羽");jb1.setSize(100, 200);jb2=new JButton("张飞");jb3=new JButton("刘备");jb4=new JButton("诸葛亮");jb5=new JButton("曹操");jb6=new JButton("魏延");//添加组件this.add(jb1 );this.add(jb2 );this.add(jb3 );this.add(jb4 );this.add(jb5 );this.add(jb6 );//设置布局管理器,流式布局默认的是居中对齐this.setLayout(new FlowLayout(FlowLayout.RIGHT));//设置窗体属性this.setTitle("这是一个演示窗体");this.setSize(200,280);this.setLocation(500, 500);//禁止用户修改控件大小.this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true);}}网格布局:网格布局容器分割为多行多列,将组件放在格中。

韩顺平Java(持续更新中)

韩顺平Java(持续更新中)

韩顺平Java(持续更新中)原创上课笔记,转载请注明出处第⼀章⾯向对象编程(中级部分) PDF为主1.1 IDEA删除当前⾏,ctrl+y复制当前⾏,ctrl+d补全代码,alt+/添加或者取消注释,ctrl+/导⼊该⾏需要的类,alt+enter快速格式化代码,ctrl+ALT+L快速运⾏程序,alt+r(⾃⼰设置)⽣成构造器等,alt+insert查看⼀个类的层级关系,ctrl+H,继承有⽤(光标放在类名上)快速定位某个⽅法的位置,ctrl+B(ctrl+⿏标点击)⾃动分配变量,main⽅法中,.var,例如new Scanner(System.in).var查看快捷键模板:Live Templates (例如,fori)1.2 Object类详解(equals、==、hashCode等)所有类都实现了Object类,都能使⽤Object类的⽅法。

1.2.1 ==运算符基本类型—>判断值是否相等引⽤类型—>判断地址是否相等指向同⼀个地址,结果为true1.2.2 equals()⽅法1.2.2.1 基本介绍Object的equals()⼀⽬了然,==运算符,⽤来判断地址是否相等⽽String等类的equals()被重写了,⽤来判断内容是否相等(根据需求,判断内容相等的标准也是可能会有所改变的)如何重写equals⽅法:Person person1 = new Person("jack", 10, '男');Person person2 = new Person("jack", 20, '男');System.out.println(person1.equals(person2));//假,如果没有重写Person类的equals⽅法,这⾥的equals⽅法调⽤的Object的(即,判断的是地址)⽰例代码://重写Object 的 equals⽅法public boolean equals(Object obj) {//判断如果⽐较的两个对象是同⼀个对象,则直接返回trueif(this == obj) {return true;}//类型判断if(obj instanceof Person) {//是Person,我们才⽐较//进⾏向下转型, 因为我需要得到obj的各个属性Person p = (Person)obj;return .equals() && this.age == p.age && this.gender == p.gender;}//如果不是Person ,则直接返回falsereturn false;}1.2.2.2 课堂练习第三个输出:因为Person并没有重写equals,所以这⾥调⽤的equals⽅法是Object的,判断地址是否相同的,⽽这两个新的对象肯定不相等,所以返回false 这道题需要注意的是,基本数据类型的==运算符是判断内容的1.2.3 hashCode()⽅法1.2.4 toString()⽅法全类名:包名+类名/**Object的toString() 源码(1)getClass().getName() 类的全类名(包名+类名 )(2)Integer.toHexString(hashCode()) 将对象的hashCode值转成16进制字符串*/public String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());}1.2.5 finalize()⽅法public class Finalize_ {public static void main(String[] args) {Car bmw = new Car("宝马");//这时 car对象就是⼀个垃圾,垃圾回收器就会回收(销毁)对象, 在销毁对象前,会调⽤该对象的finalize⽅法//,程序员就可以在 finalize中,写⾃⼰的业务逻辑代码(⽐如释放资源:数据库连接,或者打开⽂件..)//,如果程序员不重写 finalize,那么就会调⽤ Object类的 finalize, 即默认处理//,如果程序员重写了finalize, 就可以实现⾃⼰的逻辑bmw = null;System.gc();//主动调⽤垃圾回收器System.out.println("程序退出了....");}}class Car {private String name;//属性, 资源。

传智 韩顺平 html+css+javascrtpt 课程笔记2(吐血整理)

传智 韩顺平 html+css+javascrtpt 课程笔记2(吐血整理)

javascript 2===============================================================================1.js面向/基于对象编程-----类(原型对象)与对象(实例)(1)js面向/基于对象特征介绍Javascript是一种基于对象(object-based)的动态脚本语言,你遇到的所有东西都是对象。

js的面向对象技术广泛应用于AJAX等优秀框架。

☞特别说明:基于对象也好,面向对象也好,实际上都是以对象的概念来编写程序。

从本质上并无区别,所以这两个概念在课程中是一样的。

因为javascript中没有class(类),所以有人把类也称为原型对象。

其实这两个概念在编程中发挥的作用都看成一个意思。

(2)为什么需要原型对象(类)?例子:张老太养了两只猫猫:一只猫叫小白,今年3岁,白色;还有一只叫小花,今年5岁,花色。

(3)类(原型对象)————如何自定义类(原型对象)和对象创建类的方式有5中方法:工厂方法——使用new Object创建对象并添加相关属性使用构造函数来定义类(原型对象):上面的Cat类就是用此种方法基本语法:function 类名/原型对象名(){}创建对象:var 对象名=new 类名/原型对象名();使用prototype构造函数及原型混合方式动态原型方式2.如何判断一个对象实例是不是Cat类型?✧if(a instanceof Cat){window.alert(“a是Cat的实例”)}✧if(a.constructor== Cat){window.alert(“a是Cat的实例”)}3.带var和不带var的区别var abc=89;function test(){abc=900;//在函数里,如果不带var,则表示使用全局的abc变量89。

//如果带var,则表示在函数中,定义一个新的私有的abc变量。

java笔记

java笔记

Java学习笔记(讲师:韩顺平)整理:reamd1、先建一个工程——>包——>类2、java中类名首字母大写方法名的首字母是小写的①匈牙利法:myCode②下划线法:my_code3.先设计类 然后根据类创建对象实例化一个开辟一个内存设计类的过程class 类名{};设计类的属性时,尽量带着private的控制访问符号,如需要访问类私有的属性,可通过构造一个公共的方法去给予外界一定的访问权。

(1)构造方法,在建立一个新的对象时会自动调用构造方法初始化成员属性。

(注:若类的形式为:class Clerk{int age;};则构造函数的形式为public Clerk(int age){ this.age=age;};)(2)类方法:public static int total() {方法语句;}4. this指向一个对象,而不是类this只能在类定义中用5.(1)static int a;a称为静态变量或类变量,因此其可以被任何一个变量访问;因此它不是任何一个实例所共有的6.java面向对象语言的三大特征:封装、继承、多态。

(可附加:抽象)(1)封装:访问控制符Public 对外公开Protected 对子类和同一个包公开默认向同一个包公开private 只有类本身才可以访问(2)能够继承的访问控制为:Public protected 默认(3)方法的重载方法的名称相同、方法的参数不同。

方法的覆盖:方法的名称相同就把父类覆盖了。

不能把父类方法的访问权限缩小。

(4)多态大类下创建实例,能够自动识别。

7.抽象类,接口,final(1)抽象类:用abstract关键字来修饰一个类,抽象方法不能有主体。

(2)接口:interface 接口名class 类名implements 接口名Implement实现原则:当一个接口实现了,就要求实现接口中的所有方法。

原则:接口不能被实例化;接口中的所有方法不能有主体,(3)final 修饰不希望被他人修改的父类的属性和方法。

韩顺平循序渐进学java从入门到精通课件笔记第三十五讲到第三十七

韩顺平循序渐进学java从入门到精通课件笔记第三十五讲到第三十七

韩顺平循序渐进学java从入门到精通课件笔记第三十五讲到第三十七第三十五讲:Java异常处理在本节课中,我们将学习Java中的异常处理。

异常是在程序执行过程中出现的错误或异常情况。

Java提供了一套强大的异常处理机制,可以帮助我们更好地处理这些异常情况,使程序更加健壮和可靠。

1. 异常的概念和分类异常是指在程序运行过程中出现的错误或异常情况。

Java中的异常分为两种类型:受检异常(checked exception)和非受检异常(unchecked exception)。

- 受检异常:需要在代码中显式处理的异常,如IOException、SQLException等。

必须使用try-catch语句块或将异常抛出。

- 非受检异常:不需要在代码中显式处理的异常,如NullPointerException、ArrayIndexOutOfBoundsException等。

可以使用try-catch语句块处理,但不强制要求。

2. 异常处理的语法Java中的异常处理通过try-catch-finally语句块来实现。

try块用于包含可能会引发异常的代码,catch块用于捕获并处理异常,finally块用于定义无论是否发生异常都需要执行的代码。

```javatry {// 可能引发异常的代码} catch (ExceptionType1 e1) {// 处理ExceptionType1类型的异常} catch (ExceptionType2 e2) {// 处理ExceptionType2类型的异常} finally {// 无论是否发生异常都会执行的代码}```3. 异常处理的示例下面是一个简单的示例,演示了如何使用异常处理机制来处理除数为零的异常。

```javapublic class DivideByZeroExample {public static void main(String[] args) {int dividend = 10;int divisor = 0;try {int result = dividend / divisor;System.out.println("结果:" + result);} catch (ArithmeticException e) {System.out.println("除数不能为零!");}}}```在上面的示例中,我们首先定义了一个除数为零的情况,然后使用try块来执行除法运算。

韩顺平 j2ee视频实战教程jsp第1讲 课件 笔记

韩顺平 j2ee视频实战教程jsp第1讲  课件 笔记

java ee ; j2ee视频教程- jsp第1讲作者: 韩顺平(一)jsp第1讲1 java EE核心十三种技术介绍2 java EE程序员修炼成精的法门(卖油翁的故事)3 jsp版本的用户管理系统演示4 jsp的概述(基本语法)5 jsp的运行原理(还是hello.jsp)6 jsp版的计算器6.1 jsp中如何使用js(javascript)和css技术..(二)java EE核心十三种技术介绍Java ee是一个开发的平台,它包括的技术很多,主要包括十三种技术.在开发时选择地进行使用,并不是要把所有的技术就去找工作。

只会几种技术就可以从事javaee的开发,正好比如说中国的十八般武艺,最好是什么都会~基础是java servlet jsp !!!基础要像大象一样扎实!不要想水中芦苇,没有跟!(三)java EE程序员修炼成精十三种技术规范:1、Jdbc2、java命名与目录接口(jndi)很少用了3、企业java Bean (Enterprise Java Bean EJB 3.0 以前的版本也要回!因为之前的开发用之前的版本,现在要维护!)4、jsp(本课程讲)5、servlet (之前讲过了)6、corba(很少用,但日本人喜欢用!)7、java的事物体系(JTA)/java事务服务(JTS)现在很少用8、javaMail(要回)和javaBeans激活架构(JAF )9、java信使服务(JMS)短信那边用10扩展标记语言(XML很重要!相当有用)11、Struts + hibernate + Spring (SSH)很重要!卖油翁的故事:我亦无他唯手熟尔!原文:陈康肃公尧咨善射,当世无双,公亦以此自矜。

尝射于家圃,有卖油翁释担而立,睨之,久而不去。

见其发矢十中八九,但微颔之。

康肃问曰:“汝亦知射乎?吾射不亦精乎?”翁曰:“无他,但手熟尔。

”康肃忿然曰:“尔安敢轻吾射!”翁曰:“以我酌油知之。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.知道数组的大小:arr.length(成员属性) 4.引用在栈里面,对象在堆里面 5.对象数组:
4.对象、字符串的很多不能用”==”,用的话是表示地址相等,比较字符串的内容是否相等是用 equals 方法
5.
数组可存放同一类型数据
简单数据类型(int,float)数组,可以直接赋值
对象数组在定义后,赋值时候需要再次为每个对象分配空间【即是:new 对象】
b=a+1.2; 或者 int a=1;float b=a+1.2f; 就解决了
第4讲 1.
流程控制 switch case 语句中,switch 条件表达式的数据类型应该和后面 case 的类型一致
2.
switch case 语句中,可用的数据类型主要是:byte short int char enum
Java 从入门到精通笔记
第2讲 1.
变量.数据类型 在 java 里面 int 占4个字节,long 占8个字节
2.
Java 基本数据类型:
整数 :(byte 一个字节 :-128---127 int 四个字节:-2147483648---+2147483647
short 两个字节:-32768---+32767 long 八个字节: )
程序员用法:数组定义:数据类型 数组名[]=new 数据类型[大小]; 如:int arr[]=new int[5];
或者是 int[] arr=new int[5]; 或者是 int []arr=new int[5];
数组引用:数组名[下标] 没事找事用法:数组定义: int arr[]; arr=new int[5]; 或者是 int[] arr; arr=new int[5]; 或者是 int []arr; arr=new int[5]; 数组引用:数组名[下标] 古板用法:int a[]={1,2,3,4,5,6,7,8,9,0}; 数组引用:数组名[下标]
数组大小必须事先指定,如:int x;int a[]=new int[x];是可以的
数组名可以理解为指向数组首地址的引用 数组的下标是从0开始标号的
第十九讲 多维数组 1.多维数组,定义:
语法:类型 数组名[][]=new 类型[大小][大小] int a[][]=new int [2][3] 第二十讲 二进制 位运算 移位计算 1.0的反码和补码都是0 2.我们只会针对有符号的数才讲反码补码 3.java 没有无符号数,换言之,java 中的数都是有符号的 4.在计算机运算的时候,都是以补码的方式运算的 5.按位 与& 或| 异或^ 取反~ 6.~-2=-3(00000010->11111101->11111100->10000011) 7.2&3=00000010 2|3=00000011 ~-5=(1000 0101->11111010->11111011(补码)->00000100)4 8.有3个移位运算符: >>算术右移:低位溢出,符号位不变,并用符号位补由于移动而空出的高位 <<算术左移:符号位不变,地位补0 >>>逻辑右移: 9.记住:对负数操作就要先找补码!!!正数也是,只不过不边罢了。得到的结果如果是正数 就结束,如果是负数就再折腾一下,转变成原码才行。 10.-1移动任意位都是-1 11.1<<2(相当于是*4)=4,-1<<2(相当于是*4)=-4 12. 而对于有符号数,其左移操作还是逻辑左移,但右移操作是采用逻辑右移还是算术右移就 取决于机器了!(算术右移和逻辑右移的区别是:算术右移不右移符号位,即最高位,右移后 前补0还是1取决于符号位的值;逻辑右移执行时将移动符号位,右移后前补0)
第十二讲 多态 1.多态性:访问子类可以通过访问父类: Animal cat =new Cat(); Animal dog =new Dog(); 2.在使用多态的时候,如果有使用覆盖函数,那么被覆盖的方法(即是父类中的的那个相应的 方法)是要存在的。 3. 多态:一个引用(类型)在不同情况下的多种状态,可使代码更加灵活 4.java 允许父类的引用变量引用它子类的实例,是自动完成的
处于安全的考虑,类的某个方法不允许修改
类不会被其它的类继承 某些变量值是固定不变的,比如 pi 第15讲 讲题目 1.switch 只能对 int、short、byte 以及枚举类型进行判断,case 后面只能是常量表达是 2.猜拳的 java 程序设计:
有个人 Tom 设计他的成员变量,成员方法,和电脑猜拳,电脑每次都产生一个随机 数0,1,2,0表示石头,1表示剪刀,2表示布。请实现: 第16讲 数组 1.数组是可以存放多个同一类型的数据 2.用法:
小数(浮点): float double
布尔 :boolean
字符:char(两个字节,可以存放汉字, char test1 ='中';) (类)
引申到 字符串
3.
在 java 中对 char 进行运算的时候,直接是当做 ASCII 码对应的整数
4.
数据不能从高精度到低精度的转换 Byte<short<int<long<float<double
方法名相同 方法的参数类型,个数,顺序至少有一项不同 方法的修饰符可以不同
方法的返回类型可以不同 另外:
只是返回类型不一样并不构成重载 只是控制访问修饰符不一样不构成重载
第11讲 约瑟夫问题(丢手帕问题) 1.方法覆盖的:子类有一个方法和父类的某个方法名称、返回类型、参数一样 2.方法覆盖注意:
子类的方法的返回类型、参数、方法名称要和父类的一样,否则编译出错 子类方法不能缩小父类方法的访问权限,但是扩大是可以的,子类抛出比父类更少的异常
访问形式:接口名.变量名 21.一个接口不能继承其它的类,但是可以继承别的接口 22.接口体现了程序设计的多态和高内聚低耦合的思想
第十四课 final 作业评讲 1.实现接口和继承父类的区别: 2.java 是单继承,一个类只允许继承一个父类,这种单继承的机制可以保证类的纯洁性,比 C++的多继承机制简洁 3.实现接口可以看做是对单继承的一种补充 4.继承是层次式的,不太灵活,修改某个类就会打破这种继承的平衡,但是接口就不会,因为 只针对实现接口的类才起作用 5.用接口体现多态: 6.前期绑定:在程序运行之前就进行绑定,由编译器和连接程序实现,又叫静态绑定,如 static 方法和 final 方法,包括 private 方法,它是隐式 fi nal 的 7.后期绑定:在运行的时候根据对象的类型进行绑定,由方法调用机制实现,因此又叫动态绑 定,或是运行时绑定,除前期绑定外的所有方法都属于后期绑定 9.final 概念:final 可以修饰变量和方法 当不希望父类的某些方法被子类覆盖的时,可以用 final 修饰 当不希望类的某个变量的值被修改,可以用 final 修饰 当不希望类被继承时,可以用 final 修饰 10.final 修饰的变量一般用下划线书写 11.如果一个变量是 final 的,那么定义时候必须赋初值 12.final 修饰的变量又叫常量,一般用 XX_XX_XX 命名 13.final 什么时候用:
第5讲 类与对象
1.
面向对象编程-类与对象
类名首字母大写
类里面的元素叫类的成员变量/属性
2.
类的定义
package 包名;
class 类名 extends 父类 implements 接口名 {
成员变量; 构造方法; 成员方法; }
ห้องสมุดไป่ตู้3.
如何创建对象:
先声明再创建 Cat cat1;cat1=new Cat();
static {
System.out.println("zhixingyicile"); i++; }//会自动执行一次,也只有一次
public Demo9()
{ System.out.println("ffffffff"); i++;
}
public static void main(String args[]) {
第十三讲 抽象类接口 (难点重点) 1.父类方法的不确定性,用抽象类修饰这个方法,abstract。 2.抽象类还是可以一样被继承 3. 当一个类继承的类是抽象的类时候,就要把抽象类中的所有的抽象方法全部方法实现 4.用 abstract 关键词来修饰的时候,一定是抽象类和抽象方法 5.在使用中不多,公司笔试的时候考很多 6.抽象类不能被实例化,只有被继承以后再去实例化 7.抽象类不一定要包含 abstract 方法,就算没有 abstract 方法,也不能实例化它 8.一旦类包含了 abstract 方法,这个类必须声明为 abstract 9.抽象方法不能有主体“{}“ 11.接口不能被实例化 12.接口中的所有方法都不能有主体
一步到位
Cat cat1 =new Cat();
4.
引用传递类似于指针一样
第8讲 this 类变量
1.
this 属于类的对象的而不是属于类的
2.
5this 不能在类的外部使用,只能在类定义时候使用!
3.
可以用类名直接访问静态变量
第9讲 类方法 封装 1.类变量是该类的所有对象共享的对象,一改全改了 2.定义语法:访问修饰符 static 数据类型 变量名 3. public class Demo9 { static int i=1;
13.抽象类里面是可以有实现了的方法的 14.接口中的所有方法都不能有主体,即都不能被实现 15.接口是更加抽象的抽象类!!!! 16.一个类继承抽象类或是使用接口,那么就要实现所有的抽象方法 17.一个类可以实现多个接口 18.接口中可以有变量(但是不能用 private,protected 修饰) 19.接口中的变量本质上都是静态的,而且是 final,不管你加不加 static,所以可以直接使用: 接口名.变量名 20.在 java 开发中,经常把常用的变量定义在接口中作为全局变量使用
相关文档
最新文档