java自己总结的学习笔记


======================================================
注:本文源代码点此下载
======================================================

大家好!这是我学完java基础后自己总结的学习笔记,希望对大家有帮助。

java中的语法:

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

常量:

java中的常量:程序中固定的,不变化的量

浮点型:就是小数

布尔型:true false

字符型:(数字符号)'a''1'(只能放一个)“”空字符串

字符串型:双引号表示,很多字符组成的串

空常量:表示对象的引用为空。

整数进制:(计算机存储数据的方式)

二进制:0-1

八进制:0-7开头(不太常用)三个二进制位,就代表一个八进制位

十六进制:0-9 a-f0x开头四个二进制位,就代表一个十六进制位

十进制:0-9

变量:

java中的变量。用于存储常量的内存空间

空间里的值可以变化

这个变量可以被重复使用

什么类型的数据往什么里面放。

数据类型:

八个二进制表示一个数据,一个字节!

1.基本数据类型

数值型

整数部分byte(一个八位) short(二个八位) int(四个八位) long(八个八位)整数默认都是int型

浮点类型float(四个八位) double(八个八位) 小数默认都是double型的

字符型 char

布尔型 boolean

2 引用数据类型(null常量是给引用数据类型使用的)

类 class

接口interface

数组 ([])

java当中,不同数据类型之间是不能直接进行运算的

强制类型转换

自动转换视频一30分钟左右。是重点

............................................................................................................

java中的运算符:

1.算术运算符:

模运算

连接符(+)

自增 自减

*任何数模与2不是0就是1,可以用做开关运算。

2.赋值运算符:

int a=4

a+=3 只有赋值运算等同a=a+3赋值运算和算术运算

例子:short s=3;第二视频15分钟左右

s=s+2//

s+=2; 能运算

3.比较运算符:(非常明显的特点,运算完的结果,要么是真,要么是假)。

相等于 ==

不等于!=

instanceof 检查是否是类的对象day7多态32分钟

用于判断对象是否所属于指定类或者接口

4.逻辑运算符:

5.位运算符 (十进制转换成二进制)

左移>最高位是什么,就那什么补

无符号右移 >>>直接拿0补

& | ^ 也是位运算符

二进制1就是true,0就是false。

........................................................................................................

程序流程语句:

1 判断语句

if..

if..else

三元运算符:运算完必须有结果

例:int x=3,y=0;

if(x>3)

y=100;//不写大括号是控制 当条语句

else

y=200;

y=(x>3)?100:200;三元运算符

system.out.println("y="+(x>3)?100:200);

if..else if..else if..else

2 选择语句

switch语句

跳出或者结束break语句。

四种类型byte short int char枚举

*if和switch都可以用于判断

但是if比较强大,除了判断值以外

还能判断范围。而且if某些方法返回的布尔型的值

switch只能对值进行选择

什么时候用,和区分!

当你有限的几个值进行判断,用switch较快。

switch能做,if基本都能够做。

3 循环语句

while 循环

do..while 循环无论条件是否满足,循环体都执行一次,只需要了解,用的极少。

for循环

while和for的区别:

书写时,用while写出来的,用for绝对没问题。

使用上,变量仅为循环增量而存在 就用for

如果定义一个变量被循环操作,还被下面语句所操作,就用while。

用到了内存消耗。

无限循环:

while(true){}

for( ; ; ){}

更加重要的内容:什么时候用到循环语句(这是起初思想)

程序自动去执行某些语句,让某些语句执行很多次的时候,

就使用循环结构。

写循环的注意事项:哪些需要参与循环,哪些不需要参与循环。

一定要先明确出来。

循环应用:

获取1-100的和:通过累加思想完成。

累加思想:

定义一个变量,不断记录每一次变化的结果

并用该结果和下一个数据进行运算

在运算时,因为数据较多,并有规律

所以使用循环会较为方便。

定义变量,并循环一走,就完事了。

int sum=0;

for(int x=1;x=5;x/=2)

{

day++;

}

system.out.println(day);

}

}

................................................................................................

用到时候,回头来复习。看看就能懂。

break continue

break:用于选择结构 或者循环结构。

continue: 用于循环结构

结束本次循环,开始下一次循环

.....................................................................

语句综合练习:

forfor循环。

99乘法表

for(int x=1;xclass

class class1=string.class

string s="abc";

class class2=s.getclass();

class class3=class.forname("java.lang.string");

以上就是获取字节码文件的三种方式

字节码对象。class

以前操作对象的时候用的是new关键字完成,并通过对象,成员方式进行调用

person p = new person();

1》先加载person.class文件

2》对对象进行初始化

p.method();

现在可以通过字节码对象完成以上动作。

加载person.class文件 获取 person.class文件对象的class对象

class class = class.forname("person");

通过字节码文件对象,对指定类进行对象创建 并初始化

person p = (person)class.newinstance();

通过对象调用成员

类可以作为参数传递,那么方法也可以作为参数进行传递

因为方法存在于字节码文件内,所以可以通过class对象获取字节码文件的内容

method m = class.getmethod("function",string.class);

m.invoke(p,"heihei");

类或者方法都可以作为参数传递这样对开发有什么好处呢?

需求:设计一个主板,为了提高后期的扩展性,也就是为了后期提高电脑的功能,

对外提供pci的接口。以方便电脑功能的扩展。

interface pci{

void open();

void close();

}

class mainboard{

public void usepci(pci p){

p.open();

p.close();

}

}

class mainboarddemo{

public static void main(string[] args){

mainboard mb = new mainboard();

mb.usepci(new netcard);

}

}

class netcard implements pci{

public void open(){

system.out,println();

public void close(){

system.out,println();

}

}

那么为了使用网卡,还需要一个步骤买就是在定义好的应用程序中,

建立网卡,并作为参数传入,那么就是对原有的程序进行修改,不利于程序的健壮性

可不可以在不修改原有程序的基础上,运行后期出现的这些子类对象呢?

这样后期的子类就不需要建立对象们只要将子类名称告知即可。

为了获取后期对象并在前期可以使用,就对外提供了一个配置文件,前期程序可以直接操作

该配置文件,后期的子类只要将子类名称存入配置文件即可,

这是就需要动态的获取指定类,并预先创建对象,就用到了反射机制,重新修改一下程序如下:

class mainboarddemo{

public static void main(string[] args){

mainboard mb= new mainboard();

file f = new file("lianxi.txt");

bufferedreader br = new bufferedreader(new filereader(d));

string s = br.readline();

class c = class.forname(s);

pci p = (pci)c.newinstence();

mb.usepci(p);

}

}

.............................................................................

解析dom节点

1》.读取xml文件节点内容:

package cn.yj3g;

/**

*

李四

51

张三

22

结果:

begin..

性别: 男

学生名: 李四年龄: 51

性别: 女

学生名: 张三年龄: 22

*/

import java.io.*;

import javax.xml.parsers.*; //导入此类,为sun所提供的xml解析器,包括dom解析器和sax解析器的实现

import org.w3c.dom.*; //此包中定义了w3c所制定的dom接口。

public class testdomread {

public static void main(string[] args) {

system.out.println("begin..");

documentbuilderfactory dbf = documentbuilderfactory.newinstance(); // 利和jaxp,建立一个解析器工厂

documentbuilder db = null;

try {

// 利用解析器工厂的newdocumentbuilder方法获得一个documentbuilder对象,此对象代表了具体的dom解析器

db = dbf.newdocumentbuilder();

} catch (parserconfigurationexception dbe) {

system.out.print(dbe);

}

document doc = null;

try {

try {

// 利用解析器对文档进行解析.关联xml文档.返回的document对象代表了对应在xml树模型

doc = db.parse("f:\\files\\workspace\\xml\\links.xml");

doc.normalize();//一个保存和加载的过程

} catch (org.xml.sax.saxexception ex) {

system.out.print(ex);

}

} catch (ioexception e) {

system.out.print(e);

}

try {

// 利用document的getelementsbytagname方法返回对应关键字所对应的树干列表

nodelist nl = doc.getelementsbytagname("学生");//按文档顺序返回包含在文档中且具有给定标记名称的所有 element 的 nodelist

for (int i = 0; i

李四

51

张三

22

张三男//添加的内容

*

*/

public class testdomwrite {

public static void main(string[] args) {

// 读入xml文件,建立document树

documentbuilderfactory factory = documentbuilderfactory.newinstance();

documentbuilder builder = null;

try {

builder = factory.newdocumentbuilder();

} catch (parserconfigurationexception bde) {

system.out.println(bde);

}

document doc = null;

try {

try {

doc = builder.parse("f:\\files\\workspace\\xml\\links.xml");

} catch (org.xml.sax.saxexception doe) {

system.out.println(doe);

}

} catch (ioexception e) {

system.out.println(e);

}

doc.normalize();

// 添加节点

string text = "张三";

string sex = "男";

text textseg;

text sexseg;

element link = doc.createelement("学生"); // 创建一个link对象,节点对象

// 添加“姓名“字段

element linktext = doc.createelement("姓名");

textseg = doc.createtextnode(text);// 创建给定指定字符串的 text 节点

linktext.appendchild(textseg);

link.appendchild(linktext);

// 添加“性别“字段

element linksex = doc.createelement("性别");

sexseg = doc.createtextnode(sex);

linksex.appendchild(sexseg);

link.appendchild(linksex);

doc.getdocumentelement().appendchild(link); // 把创建好的节点添加到dom树中

// 用xslt把dom树输出到流(文件)中

transformerfactory tfactory = transformerfactory.newinstance();// 获取 transformerfactory 的新实例。

transformer transformer = null;//transformer: 将 xml source 转换为 result

try {

transformer = tfactory.newtransformer();

} catch (transformerconfigurationexception te) {

system.out.println(te);

}

domsource source = new domsource(doc);

streamresult result = new streamresult(new file(

"f:\\files\\workspace\\xml\\links2.xml"));

try {

// transformer类的transfrom方法接受两个参数、一个数据源source和一个输出目标result

transformer.transform(source, result);

} catch (transformerexception tre) {

system.out.println(tre);

}

}

}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

3》.

package cn.yj3g;

import java.io.file;

import java.io.ioexception;

import java.util.arraylist;

import java.util.list;

import javax.xml.parsers.parserconfigurationexception;

import javax.xml.parsers.saxparser;

import javax.xml.parsers.saxparserfactory;

import org.xml.sax.attributes;

import org.xml.sax.saxexception;

import org.xml.sax.helpers.defaulthandler;

//解析persons.xml生成一个person类对象的集合

/*

*

liming

好文要顶关注我收藏该文与我联系


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值