扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
什么是Java?
目前成都创新互联已为上1000+的企业提供了网站建设、域名、网页空间、网站改版维护、企业网站设计、网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。我们拥有完善的网络基础设施服务,能够为企业或个人提供空间域名、网页空间、企业邮局、网站加速、数据库、云主机等网络基础服务。
Java好象随处可见 - 甚至在TV中。尽管如此,说清楚Java是什 么和它能做什么却不那么容易。刚开始接触Java的人通常有三
个问题:
什么是Java?
Java能做什么?
Java怎样改变我的生活?
让我们先回答第一个问题:什么是Java?
Java既是一种编程语言,又是一个平台。
Java程序语言
Java是具有以下特征的高级程序语言:
简单
面向对象
可分布
可解释
强壮
安全性
结构化
轻便
功能强大
多线程
动态
Java既可以被编译,也可以被解释。通过编译器,可以把Java 程序翻译成一种中间代码 - 称为字节码 - 可以被Java解释器
解释的独立于平台的代码。通过解释器,每条Java字节指令被 分析,然后在计算机上运行。只需编译一次,程序运行时解释 执行。
一 有很多教程,叫学了也白搭
这年头,网上的Java教程一堆一堆的,看的我们很多Java宝宝们是眼花缭乱,不知该如何是好,我当年也是从这个过程走过来的,每天看很多老师的Java教程,听的自己晕头转向的,当然我不是说他们讲错了,他们讲的知识层面的东西是对的,但是很多做Java教程的老师不善于深入浅出,通俗易懂的来为我们讲解知识,什么是好教程?好教程就是让我们学了之后,有一种豁然开朗的感觉,而不是云深不知处,我想说的是这种教程,不看也罢,浪费了时间,迷茫了自己。
二 有一种教程叫无论你身处何地,都能现场直播教你
现在很多网上流传的教程都是很多年前的,远远的不适应现在Java新应用的需要,基本上都是一些淘汰货,很多小伙伴们,从网上找这种破烂,学的还不亦乐乎,也是醉了。综上所述,我们很多人学不好Java,是因为 一开始就选择错了,选择不对,努力白费。为了能够让广大Java学子们在网上学到Java的系统精华知识,通俗易懂的理解这些知识,我们决定现在每天晚上现场直播在网上教大家学习Java,我们的老师,一般的老师不用,我们只让牛掰的老师讲,而你什么都不需要付出,你只需要来我们这个群里听就行,开头的的第一部分是:426.,位于中间的第二部分是:396,处于最后一部分的是:284,学习没有任何借口,想强大就要努力,同时这也不是一个单打独斗的时代了,大家在这里一块学习,打拼出属于我们的Java新天地。
三Java新手入门的30个基本概念
在我们学习Java的过程中,掌握其中的基本概念对我们的学习无论是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基础,所以有必要对其中的基本概念做以归纳,以便大家在以后的学习过程中更好的理解java的精髓,在此我总结了30条基本的概念。
Java概述:
目前Java主要应用于中间件的开发(middleware)---处理客户机于服务器之间的通信技术,早期的实践证明,Java不适合pc应用程序的开发,其发展逐渐变成在开发手持设备,互联网信息站,及车载计算机的开发.Java于其他语言所不同的是程序运行时提供了平台的独立性,称许可以在windows,solaris,linux其他操作系统上使用完全相同的代码.Java的语法与C++语法类似,C++/C程序员很容易掌握,而且Java是完全的彻底的面向对象的,其中提出了很好的GC(Garbage Collector)垃圾处理机制,防止内存溢出。
Java的白皮书为我们提出了Java语言的11个关键特质。
(1)Easy:Java的语法比C++的相对简单,另一个方面就是Java能使软件在很小的机器上运行,基础解释其和类库的支持的大小约为40kb,增加基本的标准库和线程支持的内存需要增加125kb。
(2)分布式:Java带有很强大的TCP/IP协议族的例程库,Java应用程序能够通过URL来穿过网络来访问远程对象,由于servlet机制的出现,使Java编程非常的高效,现在许多的大的web server都支持servlet。
(3)OO:面向对象设计是把重点放在对象及对象的接口上的一个编程技术.其面向对象和C++有很多不同,在与多重继承的处理及Java的原类模型。
(4)健壮特质:Java采取了一个安全指针模型,能减小重写内存和数据崩溃的可能型。
(5)安全:Java用来设计网路和分布系统,这带来了新的安全问题,Java可以用来构建防病毒和防攻击的System.事实证明Java在防毒这一方面做的很优秀。
(6)中立体系结构:Java编译其生成体系结构中立的目标文件格式可以在很多处理器上执行,编译器产生的指令字节码(Javabytecode)实现此特性,此字节码可以在任何机器上解释执行。
(7)可移植:Java中对基本数据结构类型的大小和算法都有严格的规定所以可移植很好。
(8)多线程:Java处理多线程的过程很简单,Java把多线程实现交给底下操作系统或线程程序完成.所以多线程是Java作为服务器端开发语言的流行原因之一。
(9)Applet和servlet:能够在网页上执行的程序叫Applet,需要支持Java的浏览器很多,而applet支持动态的网页,这是很多其他语言所不能做到的。
基本概念:
1.OOP中唯一关系的是对象的接口是什么,就像计算机的销售商她不管电源内部结构是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why.所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过对封装对象数据,很大限度上提高复用率。
2.OOP中最重要的思想是类,类是模板是蓝图,从类中构造一个对象,即创建了这个类的一个实例(instance)。
3.封装:就是把数据和行为结合起在一个包中)并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(instance field)。
4.通过扩展一个类来获得一个新类叫继承(inheritance),而所有的类都是由Object根超类扩展而得,根超类下文会做介绍。
5.对象的3个主要特点
behavior---说明这个对象能做什么.
state---当对象施加方法时对象的反映.
identity---与其他相似行为对象的区分标志.
每个对象有唯一的indentity 而这3者之间相互影响.
6.类之间的关系:
use-a :依赖关系
has-a :聚合关系
is-a :继承关系--例:A类继承了B类,此时A类不仅有了B类的方法,还有其自己的方法.(个性存在于共性中)
7.构造对象使用构造器:构造器的提出,构造器是一种特殊的方法,构造对象并对其初始化。
例:Data类的构造器叫Data
new Data()---构造一个新对象,且初始化当前时间.
Data happyday=new Data()---把一个对象赋值给一个变量happyday,从而使该对象能够多次使用,此处要声明的使变量与对象变量二者是不同的.new返回的值是一个引用。
构造器特点:构造器可以有0个,一个或多个参数
构造器和类有相同的名字
一个类可以有多个构造器
构造器没有返回值
构造器总是和new运算符一起使用.
8.重载:当多个方法具有相同的名字而含有不同的参数时,便发生重载.编译器必须挑选出调用哪个方法。
9.包(package)Java允许把一个或多个类收集在一起成为一组,称作包,以便于组织任务,标准Java库分为许多包.java.lang java.util java,net等,包是分层次的所有的java包都在java和javax包层次内。
10.继承思想:允许在已经存在的类的基础上构建新的类,当你继承一个已经存在的类时,那么你就复用了这个类的方法和字段,同时你可以在新类中添加新的方法和字段。
11.扩展类:扩展类充分体现了is-a的继承关系. 形式为:class (子类) extends (基类)。
12.多态:在java中,对象变量是多态的.而java中不支持多重继承。
13.动态绑定:调用对象方法的机制。
(1)编译器检查对象声明的类型和方法名。
(2)编译器检查方法调用的参数类型。
(3)静态绑定:若方法类型为priavte static final 编译器会准确知道该调用哪个方法。
(4)当程序运行并且使用动态绑定来调用一个方法时,那么虚拟机必须调用x所指向的对象的实际类型相匹配的方法版本。
(5)动态绑定:是很重要的特性,它能使程序变得可扩展而不需要重编译已存代码。
14.final类:为防止他人从你的类上派生新类,此类是不可扩展的。
15.动态调用比静态调用花费的时间要长。
16.抽象类:规定一个或多个抽象方法的类本身必须定义为abstract。
例: public abstract string getDescripition
17.Java中的每一个类都是从Object类扩展而来的。
18.object类中的equal和toString方法。
equal用于测试一个对象是否同另一个对象相等。
toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.
(toString 方法是一个很重要的方法)
19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。
20.数组列表:ArrayList动态数组列表,是一个类库,定义在java.uitl包中,可自动调节数组的大小。
21.class类 object类中的getclass方法返回ckass类型的一个实例,程序启动时包含在main方法的类会被加载,虚拟机要加载他需要的所有类,每一个加载的类都要加载它需要的类。
22.class类为编写可动态操纵java代码的程序提供了强大的功能反射,这项功能为JavaBeans特别有用,使用反射Java能支持VB程序员习惯使用的工具。
能够分析类能力的程序叫反射器,Java中提供此功能的包叫Java.lang.reflect反射机制十分强大.
1.在运行时分析类的能力。
2.在运行时探察类的对象。
3.实现通用数组操纵代码。
4.提供方法对象。
而此机制主要针对是工具者而不是应用及程序。
反射机制中的最重要的部分是允许你检查类的结构.用到的API有:
java.lang.reflect.Field 返回字段.
java.reflect.Method 返回方法.
java.lang.reflect.Constructor 返回参数.
方法指针:java没有方法指针,把一个方法的地址传给另一个方法,可以在后面调用它,而接口是更好的解决方案。
23.接口(Interface)说明类该做什么而不指定如何去做,一个类可以实现一个或多个interface。
24.接口不是一个类,而是对符合接口要求的类的一套规范。
若实现一个接口需要2个步骤:
1.声明类需要实现的指定接口。
2.提供接口中的所有方法的定义。
声明一个类实现一个接口需要使用implements 关键字
class actionB implements Comparable 其actionb需要提供CompareTo方法,接口不是类,不能用new实例化一个接口.
25.一个类只有一个超类,但一个类能实现多个接口。Java中的一个重要接口:Cloneable
26.接口和回调.编程一个常用的模式是回调模式,在这种模式中你可以指定当一个特定时间发生时回调对象上的方法。
例:ActionListener 接口监听.
类似的API有:java.swing.JOptionPane
java.swing.Timer
java.awt.Tookit
27.对象clone:clone方法是object一个保护方法,这意味着你的代码不能简单的调用它。
28.内部类:一个内部类的定义是定义在另一个内部的类。
原因是:
1.一个内部类的对象能够访问创建它的对象的实现,包括私有数据。
2.对于同一个包中的其他类来说,内部类能够隐藏起来。
3.匿名内部类可以很方便的定义回调。
4.使用内部类可以非常方便的编写事件驱动程序。
29.代理类(proxy):
1.指定接口要求所有代码
2.object类定义的所有的方法(toString equals)
30.数据类型:Java是强调类型的语言,每个变量都必须先申明它都类型,java中总共有8个基本类型.4种是整型,2种是浮点型,一种是字符型,被用于Unicode编码中的字符,布尔型。
首先理解public boolean addBook(Book book )这句话的含义是创建一个大家都能使用的公共方法(public的作用),该方法返回一个布尔类型的值(boolean的作用),该方法的名字是addBooke(调用方法需要名字啊,没名字怎么用它),这个方法需要的参数是一个Book类型的对象book(Book book的作用);
每一个方法都有一个方法签名:方法签名就是方法名和参数列表(在这里就是 addBook(Book book))通过方法签名我们就能正确的找到并执行该方法;
方法名,顾名思义就是方法的名字,一个类中可以有很多相同方法名的方法,就拿addBook来所,是添加书,添加书的渠道很多,可以通过书名添加,也可以通过id添加,只不过执行的逻辑和需要的参数不同;所以一个类中可以有很多的同名方法,那么程序如何区分这些方法呢?那就是通过方法签名的另一个元素——参数列表,在java中称方法名相同,参数列表不同的情况为方法的重载;
这位大哥问的就是参数列表的问题,参数列表中需要的是参数的数据类型,和一个引用来临时在方法中保存用户给的数据;这里Book就是数据类型,book就是一个临时的引用在方法体内可以代表用户给的数据的;这里有需要有栈桢和堆的概念了,在没有这些基础知识的时候我们只要知道,book是一个引用,在方法体中我么可以使用book来操作一个不属于我们的外部对象;
纯手打望采纳;
第一个if是判断searchkey是不是空的,如果不是空的,就追加到name字段作为查询条件,like模糊查询
接着第二个if判断如果status的值不为空,就追加到status作为条件
如果status为空,走else分支,从userContext中获取到employee对象,接着判断,如果它的角色不是manager的话
把这个对象的id拿出来,作为seller.Id的条件进行查询
就从denglu(...)方法开始讲了,这个方法在声明的时候标识了会throws Exception,表示这个方法中的某些代码可能会抛出异常。
UserDenglu resultUser = null; 构造一个名叫 UserDenglu的类的对象 resultUser,值为null表示没有实例化(只是声明了一个模型,没有在内存中占用位置)。
String sql = ... 这名是定义一个字符串变量,它的值是一个sql语句;语句的意思是: 查询t_denglu表中字段userName值(?为暂留空,后面填)并且password值为(?为暂留空,后面填);
PreparedStatement pstmt = con.prepareStatement(sql); 将sql语句传给con对象(数据库连接对象)的prepareStatement方法得到返回值为 pstmt对象;
pstmt.setString(1, user.getUserName()); 把sql语句中的第一个?参数替换成 user.getUserName()方法的返回值;
pstmt.setString(2, user.getPassword()); 意义与上句类同,替换第二个?参数。
ResultSet rs = pstmt.executeQuery(); 执行数据库查询语句,将查询结果放入rs对象中;
if(rs.next()) 如果rs结果集中还有下一条的话
resultUser = new UserDenglu(); 实例化resultUser对象;
resultUser.setUserName(rs.getString("username"));将数据库结果集中查询到的列名为username的列的值传入 resultUser.setUserName()方法中;
resultUser.setPassword(rs.getString("password"));与上句类同,将password列的值传入到resultUser的setPassword()方法中。
========================================================
这个做的是用户登录功能,该方法中接收一个包含用户输入的用户名和密码的UserDenglu对象,然后用它们来查询数据库中是否有对应用户名和密码对的结果,如果有的话,就登录成功,如果没有,就登录失败。登录失败,该方法返回的是null,如果登录成功,返回的是一个包含数据库中查询出来的用户名和密码的UserDenglu对象。调用这个方法时,可以判断它返回值是否为null来判断是否登录成功(用户名和密码正确)。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流