javaEE是企业标准(面向Internet的应用程序):京东、淘宝….
javaME(移动设备、小型嵌入开发):手机上的软件
3、三步骤:
编写源程序(程序以.java结尾)
编译(使用javac指令编译源程序,编译后的文件以.class结尾)
运行(使用java指令运行编译后的文件)
4、使用Myeclipse开发java程序步骤:
1)创建项目
2)编写源代码
3)编译
4)运行
5、外层框架
Publicclass类名{
}
注意:类名和文件一致
6、内层框架
Publicstaticvoidmain(String[]args){
注意:方法名必须是main
主方法四要素:publicstaticvoidString[]args
7、输出指令
System.out.println(“女”);
System.out.println(“18’);
注意:System首字母大写,
Println和print区别:println输出后换行;print只输出不换行
(建议用Println)
8、\n和\t
(1)\n换行;
(2)\t制表位,4个字符作为一个单位
9、注释:
1)//单行注释以//开始到行末结束
2)/**
*
*/文本注释
3)\*……*\多行注释多行用于注释代码块
Javascriptjquerymysql前台
jspservlethibernetspringstruts2后台
orcale……数据库
第二章:变量、数据类型和运算符
1、变量:存储数据的一个基本单元。
变量名=值;price=1000;
3、数据类型2种:
(1)基本数据类型8种:
1)byte长度:-128~127(-2的7次方到2的7次方减1)
2)short-2的15次方到2的15次方减1
3)int-2的31次方到2的31次方减1
4)long-2的63次方到2的63次方减199l
5)foat99f
6)double双精度doubleprice=32.5;
7)boolean真(true)假(false)boleanisBrand=true
8)char一个字符,两个字节范围0~65535参照ASCII字符编码表charsex=’男’;charnum=65;(输出A)
(2)引用数据类型:
1)String字符串例:Stringname=”张三”;
2)类
3)接口
4)数组
4、变量命名规范:
(1)英文单词或拼音
(2)首字母:以字母、下划线、$开头;
(3)当多个单词组成的变量名:以驼峰式命名法取名,例:studentName
(4)变量名要起到见名知义的效果
5、赋值运算符:=把右边的值赋给左边
6、算术运算符:+-*/%(取余)
7、num++;//num=num+1;num+=1;
num--;//num=num-1;num-=1;
System.out.println(--num);//先计算再输出,(++num同理)
System.out.println(num--);//先输出再计算,(num++同理)
8、doubleavg=(90+99)/3.0发生自动类型转换
自动类型转换的条件;
1)类型兼容:(int和double都是数值型)
2)目标类型大于源类型
9、强制类型转换:(数据类型)变量名(数据类型)值
例:doublenum=5.5;intresult=(int)num;
或者intresult=(int)5.5;
第三章:运算符和条件结构
1、保存真或假,使用boolean变量
boolean有两个值:true真、false假
2、从控制台接受输入信息,通过创建扫描器
Scannerinput=newScanner(System.in);
Intage=input.memtInt();//接受int类型
Stringname=input.next();//接受String类型
3、关系运算符
>、<、>=、<=、==、!=
4、==和=的区别
==比较,=赋值
5、条件判断if
if(表达式){
语句
}//当表达式为true真时执行语句
6、运算符分为单目、双目、三目
单目:!++--
双目:=+-*/%|||&&&==
三目:://intsign=java>901:0;三目表达式
7、逻辑运算符
|、&、||、&&、!
优先级顺序:()>!>算术运算符>&&>||>赋值运算符=
多使用()控制优先级
8、if—else
if(表达式){
语句1;
}else{
语句2;
当表达式为真,执行语句1;当表达式为假,执行语句2
9、多重if—elseif—else
if(条件1){
}elseif(条件2){
}elseif(条件3){
语句3;
语句4;
10、switch(表达式){
case值1:
Break;
case值2:
case值3:
default:
jdk版本在1.7或者1.7以上,表达式是值可以是String类型;值不能相同;
break的作用是跳出switch结构。
11、多重if结构和switch结构的使用场合:
多重if判断区间值,switch判断等值
第四章:循环结构(一)
1、while循环:
语法:while(循环条件){
循环操作;
特点:先判断,在执行。
2、==:用于数字比较,比较的是地址;
.equals:用于字符串比较,比较的是字符;
(如:!anwer.equals(“y”))
3、dowhile
语法:do{
}while(循环条件);
特点:先执行,再判断
4、while和dowhile的区别:
除了语法上不同外;
当条件不满足时:while一次都不执行;而dowhile至少会执行一次
5、调试方法:设置断点、单步执行、观察变量
6、调试步骤:
1)猜测出错位置,设置断点
2)单步运行
3)观察变量的值
4)发现问题
5)修正代码,重新运行
6)解决问题
第五章:循环结构(二)
1、for语法
for(1参数初始化;2条件;3参数叠加){
//4循环操作
特点:先判断,再执行
顺序:1243
2、break:改变程序的控制流,多用于循环中;结合条件结构和分支结构,跳出整个循环
Continue:只能用在循环中;跳过循环体剩下的语句去执行下一个循环,结束当前的循环,进行下一步循环
3、while、do-while、for的区别:
(1)while语法:while(循环条件){循环操作}
特点:先判断再执行
(2)do-while:do{循环操作}while(循环条件);
特点:先操作再执行
(3)for语法:for(参数初始化;条件;参数改变){循环体}
使用场景:确定循环次数
4、使用循环的步骤:
(1)确定循环条件和循环体
(2)套用语法
(3)检查能否正常退出
第六章:数组
1、数组:是一个变量,存储相同数据类型的一组数据。
2、数据优点:减少代码量,容易查找
3、数据的步骤:
(2)开辟空间:例:scores=newint[5];
(3)赋值:例:scores[0]=100;
(4)使用:例:scores[0]=scores[0]+20;//最终的结果是:scores[0]=120;
(1)Intnum[]=new[4]{1,2,3,4};
(2)int[]num=newint[4];
(3)intnum[]={1,2,3,4}
5、引用数组元素的方式:
数据名称[下标];
例:num[0];
6、值传递和引用传递的区别:
值传递:不同的变量会分配不同的存储空间;不同的变量会分配不同的存储空间。
引用传递:赋值是把原对象的引用传递给另一个引用;两个引用指向同一块内存空间。
7、二维数组:
语法:数据类型[][]数组名=new数据类型[一维数组的长度][二维数组的最大长度];
数据类型数组名[][]=new数据类型[一维数组的长度][二维数组的最大长度];
例:intscore[][]=newint[5][10];//int[][]score=newint[5][10]
结论:二维数组实际上是一个一维数组,它的每一个元素又是一个一维数组
8、赋值方式:scores={{1,5,8,9,10},{123,120}};
第七章:类和对象
1、对象的特征→指:类的属性(每个对象的每个属性都有特定的值)
对象的操作→指:类的方法
2、封装
对象同时具有属性和方法两项特性。
对象的属性和方法通常被封装在一起,共同体现事物的特性,二者相辅相成,不能分割。
3、类和对象的区别:
类:是抽象的概念,仅仅是一个模子,确定了对象的属性和方法;
对象:能够看得见摸得着的实物,具有静态和动态特性。
4、定义类的步骤:
(1)定义类名
(2)定义类的属性:访问修饰符属性类型属性名称=默认值;
(3)定义类的方法:访问修饰符返回值类型方法名称(){
方法体;
5、成员变量和局部变量:
成员变量:上级是类,作用域是整个类中
局部变量:上级是方法,作用域是当前的方法
6、类名命名规则:
(1)不能使用Java的关键字
(2)首字母可以是字母,也可以是_或$
(3)不能包含空格和标点符号
7、创建对象:关键字:new
类名对象名=new类名();
例:YuntuSchoolBeijing=newYuntuSchool();
8、使用对象:关键符号:.
对象名.属性=值;例:beijing.schoolName=”云图智联北京中心”;
对象名.方法;例:beijing.showInfo();
9、面向对象的优点:
(1)便于程序模拟现实世界中的实体;
(3)可重用
可以通过类的模板,创建多个类的对象。
10、类是引用数据类型:
在传值时,对象2=对象1传的是地址,一个改变,另一个也变;
对象2.name=对象1.name;传的是值,相互独立。
第八章:类的方法(一)
1、类的方法语法:
访问修饰符返回值类型方法名(){
方法主体;
2、方法名的规范:
1.必须以字母、“_”或“$”开头
2.可以有数字,但不能以数字开头。
3.如果方法名是多个单词组成,第一个单词的首字母小写,其后单词首字母单词大写。
4.方法名一般都采用动词。
3、方法的返回值
1.有返回值:必须告知返回值的数据类型,并且返回相应的值。
例:publicStringgetName(){
return"张三";
2.无返回值:void
例:publicvoidshowInfo(){
4、调用方法:
1.不同类中:对象名.方法名();
2.同类中:方法名();
方法之间可以相互调用
6、包的命名规范:
(1)包名由小写字母组成,不能以远点开头或结尾
(2)自己设定的包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名。如:域名javagroup.net
(3)自己设定的包名部分依据不同机构各自内部的规范不同而不同
7、包的命名方式:package
公司的网址倒过来写,后加上项目名称,再加上所属的文件夹名称。
com.zhaopin.ts.entity
com.zhaopin.ts.servlet
com.zhaopin.ts.dao
com.zhaopin.ts.dao.imp1
com.zhaopin.ts.biz
com.zhaopin.ts.biz.imp1
8、doc注释:多用于注释类的信息
/**开始
*/结束
第九章:类的方法(二)
1、带参的语法:
访问修饰符返回值类型方法名称(参数列表){
例:publicStringgetFuirt(Stringfuirt){
Stringzhi=fuirt+m+"汁";
returnzhi;
2、调用带参方法:
同类中,非静态方法,方法名(参数列表);
不同类中,对象.方法名(参数列表);
3、带参方法的参数需要注意:
1.形参的数据类型和实参的数据类型一致。
2.方法形参的数量和调用方法实参的数量要一致。
第十章:字符串
(1)Strings=”您好”;
(2)Strings=newString(你好);
2、字符串是长度:
字符串.length();
3、equals比较的是值,一般用于字符串的比较;
==比较的是地址,一般用于数字的比较。
4、字符串的方法比较:
(1)equlasIgnoreCase()比较时忽略大小写
例:name.equlasIgnoreCase()
(2)toLoerCase()转换成小写
例:name.toLoerCase()
(3)toUpperCase()转换成大写
例:name.toUpperCase()
5、\叫转义符
6、拼接字符串:
用”+”或”concat()”方法,当原字符串是有效字符串时,在其后拼接新的字符串时,会创建副本。
例如:Stringstr=”你好”;str=str+”北京”;
Stringstr=newString(“你好”);str.concat(“北京”);
特点:使用”+”和”concat()”方法,会造成内存浪费,性能比较差,线程安全。
7、indexOf(参数);获取字符或字符串的下标;
(1)indexOf(intch)
例如:str.indexOf(’你’);
(2)indexOf(Strings);
例如:str.indexOf(“.java”);
8、lastIndexOf(参数);获取最后一个字符或字符串的下标
(1)lastIndexOf(intch);
例如:lastIndexOf(’你’);
(2)lastIndexOf(intch);
例如:lastIndexOf(“.java”);
9、subString(参数);截取字符串
(1)subString(intindex);
下标从0开始,从index开始截取到最后结束。
(2)subString(intbeginIndex,intendIndex);
下标从0开始,从beginIdex开始截取,包括beginIdex位置,到endIdex结束,不包括endIndex位置。
10、trim()方法:去掉字符串前后空格。
11、split()方法:分割字符串,返回数组
例如:Stringst="长亭外-古道边-芳草碧连天-天外天-人外人";
String[]wor=st.split("-");
for(inti=0;i System.out.println(wor[i]); 12、StringBuffer类:用于频繁拼接字符串时使用。 例如:StringBuffersb=newStringBuffer(“你”); Sb.append(“好吗?”); Sb.insert(1.”们”); Stringword=sb.toString(); System.out.println(word);//你们好吗? 特点:在自身上追加字符串,不会产生副本,所以节省内存,性能高,线程安全。 13、StringBuilder类:用于频繁拼接字符串时使用。在自身上追加字符串,不会产生副本,所以节省内存,性能高,线程不安全。 14、String、StringBuffer、StringBuilder三者间的区别: 1)原理: String频繁拼接时产生大量对象(副本), StringBuffer和StringBuilder都是在当前对象上操作,所以不会产生大量对象(副本); 2)性能: String 3)线程: String和StringBuffer安全,StringBuilder非安全。 15、小结: if(操作的数据较少){ String If(多线程){ StringBuffer StringBuilder 第十一章:抽象和封装 1、面向对象设计和开发程序的好处: (1)交流更加流畅 (2)提高设计和开发效率 2、从现实中抽象出类分三步: (1)找出它的种类————(类名) (2)找出它的属性————(字段的名称) (3)找出它的行为————(方法名) 3、抽象的原则: (1)根据面向对象的思想抽象出类。 4、类图的好处: (1)直观 (2)容易理解 5、构造方法: (1)系统默认的无參构造: 例如:publicDog(){} 注意:当程序写了自定义构造方法时,系统自带的无參构造将消失。 (2)自定义的无參和有參构造: a.自定义无參构造: 例如:publicDog(){ this.name=”大黄”; this.love=100; b.自定义的有參构造: 例如:publicDog(Stringname,intlove){ 特点:a.访问修饰符是public b.无返回值 c.构造函数方法名和类名一致 语法: 访问修饰符函数名称([参数列表]){ [方法体;] }//[]代表可以省略(不写) 5、this的含义:当前对象的引用。 this的使用: this.属性 this.方法 this()构造函数: 例如:this();调用了无參构造 this.(参数1[参数列表]);调用了有參构造 6、static静态的,可以修饰属性、方法、代码块。 被static修饰过的属性、方法的调用方法: 类名.属性 类名.方法 被修饰过的代码块:类加载时,就加载代码块。 注意:方法里的变量不能被static修饰。 7、Final最终的,可修饰属性,被修饰后叫常量。常量的是不可以被修改的。 常量的命名方式全部大写。 8、在开发中,一般一个完整的实体类包括: (1)私有化的属性 (2)创建gettersetter方法[有參/无參] (3)给gettersetter方法添加控制语句 (4)创建[有參/无参]构造方法 第十二章:继承 1、使用继承: 1)方便修改代码 2)减少代码量 2、super继承object类: super访问父类的无参构造;super指的是object的无参构造。 例:子类调用父类:super.属性/super.方法 注意:子类不能继承父类私有属性;得用set、get方法来调用; super只能写在代码块的第一句;super只能调用非私有的方法; super只能出现在子类的方法和构造方法中。 3、不能被继承的父类成员: private成员、子类与父类不在同包,使用默认访问权限成员,构造方法。