Java基础知识学习笔记总结

Java学习笔记总结

java基础复习

1、 抽象类可以有构造器,可以有一个非抽象的父类

2、 垃圾回收机制回收的是堆里面的内存,栈里面的数据自动入栈自动出栈

3、 引用类型的数据在堆当中,内存中操作的只有栈,new关键字在堆里面分配一块内存

4、 java中是值传递

5、 String是不可变字符,即一旦分配了内存,此内存的值将不会改变,又将String赋值是,会重新分配一块内存,字符串池: StringBuffer

6、 在堆中的东西叫对象

Ø  运行时异常:

    ArithmeticException  当出现异常的运算条件时,抛出此异常。例如,一个整数“除以零”时,抛出此类的一个实例。

   ArrayIndexOutOfBoundsException用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。

   ArrayStoreException试图将错误类型的对象存储到一个对象数组时抛出的异常。如:

   Objectx[] = new String[3];

   x[0]= new Integer(0);

   ClassCastException视图将对象转换为不是实例的子类时,抛出该异常。如:

   Objectx = new Integer(0);

   System.out.println((String)x);

   illegalArgumentException表明向方法传递了一个不合法或不正确的参数

   NegativeArraySizeException如果应用程序视图创建大小为负的数组,则抛出该异常

Ø  编译时异常:

   NoSuchMethodException无法找到某一特定方法时,抛出该异常

7、 unicode码范围

  汉字:[\u4e00,\u9fa5]

  数字:[0x30,0x39]

  小写字母:[0x61,0x7a]

  大写字母:[0x41,0x5a]

8、 final类

   final类能够修饰非抽象类、非抽象类成员方法和变量(静态变量、实例变量、局部变量)

   final类不能被继承,没有子类

   final方法可以被继承,但不能被子类的方法覆盖

   final成员变量表示常量,声明成员变量时,必须赋值(要么在声明的时候赋值,要么在构造器中赋值),赋值后不能被改变

   publicfinalint E; //final空白,必须在初始化对象的时候赋初值
        
public Test3(int x) {
                E= x;
        }

   final不能用于修饰构造方法2.5

9、 static只能修饰成员变量,表示所有对象共享这个数据

   static能够修饰成员变量和方法,内部类,也可以形成静态static代码块,不能修饰局部变量

   被static修饰的成员变量可以直接用类名来调用,语法如下:

   类名.静态放大名();

   类名.静态变量名;

   静态方法中不能用this和super关键字,不能直接访问不带static的成员变量和成员方法

   因为static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的abstract

   先运行静态代码块,再运行构造器

 

10、static和final一块表示什么

   staticfinal用来修饰成员变量和成员方法,可理解为全局变量(java中没有全局变量的概念)

   staticfinal修饰变量,表示一旦给值就不可修改,并且通过类名就可以访问

   staticfinal修饰方法,表示不可覆盖,并可通过类名直接访问 

   staticfinal修饰一些容器类型(ArrayList、HashMap)的变量,不可以改变容器变量本省,但可以修改容器中存放的对象

 

11、类成员变量分类

    被static修饰的变量叫静态变量或者类变量;

    没有被static修饰的变量叫实例变量。

 

12、命令行参数

    java主类参数(即命令行参数)

    eclipse中java输入命令行参数,在选定的类中,点击右键run as—Runconfigurations—Arguments-Program arguments-Variables-选择string_prompt

 

13、Integer.valueOf(String)将字符串转换成Integer包装类

 

14、一个.java文件中可以有很多类。不过注意以下几点:  

a、public 权限的类只能有一个(也可以一个都没有,但最多只有1个)

b、这个.java文件的文件名必须是public类的类名(一般的情况下,这里放置main方法是程序的入口。)

c、若这个文件中没有public的类,则文件名随便是一个类的名字即可

d、用javac 编译这个.java文件的时候,它会给每一个类生成一个.class文件

 

15、面向对象、面向过程

    面向对象的三大特性:封装、继承、多态

    面向过程:C语言的底层语言的特性

 

16、类和对象:

    一个类中可以有多个对象,类是对对象的描述

    一个类中的成员:

        字段:封装private

        方法:类的行为

    构造器:与类同名,没有返回值。作用:初始化成员变量。默认构造器:无参且同名没有返回值,当一个类显示的表明构

造器,则类不自己建立默认构造器

        内部类

 

17、类之间的关系:继承耦合度最高

    A.继承(is-a): 单继承多实现 extends 优点:减少了代码的冗余、缺点:耦合度太高

    B.实现:

    C.组合(has-a):

        合成:个体和整体的关系,个体与整体生命周期相同,公司和部门的关系

        聚合:个体和整体的关系,生命周期不同,学生和学校的关系

        关联:双向关联

            Class Person{

                Petpet;}

            ClassPet{

                Personowner;

            }

    D.依赖(use-a):一个类作为另一个类方法的参数或者是返回值,称为依赖

 

18、java设计原则

低耦合高内聚

可扩展性和可维护性


19、继承:

  子类中的成员:

     1)从父类中继承的可视化(非私有的)的成员(字段、方法),不能继承父类的构造器

     2)子类所特有的成员(字段、方法、构造器)

     3)重载父类的成员(方法)  多态

         重载的条件:

            a)发生在同一个类或者父子类之间

           b)方法名称相同,参数列表(参数的个数,参数的数据类型、参数的顺序)不同

           c)返回值无所谓

           d)访问权限无所谓

         歧义重载:

            ma(12,34)//歧义重载,编译错误

            publicvoid ma(int i,double j){//打印1}

            publicvoid ma(double i,int j){//打印2}

         构造器重载:

           this:

                 this.成员(字段、方法):调用本类的字段、方法

                 this(参数列表):调用本类的其他构造方法,必须在构造方法的第一句

                  public Person(int age){

                        this(age,””);//调用下面那个构造器

                    }

                  publicPerson(int age,String name){

                        this.age= age;//调用本类的字段

                        this.name= name;

                    }

           super:父类的对象

               super.成员:调用父类的成员(方法、字段)

               super(参数列表):调用父类的构造方法,必须位于子类构造方法的第一句

               如果父类中没有无参的构造器,在子类中必须显式的调用父类带参数的构造方法(super(参数类表或者this(参数列表)));  如果父类有无参的构造器,则子类中可以不用显式调用父类的构造器,因为系统默认调用super();

     4)重写父类的成员(方法)  多态

          重写的条件 :

            a)发生在父子类之间

            b)方法名称相同,参数列表(参数的个数,参数的数据类型、参数的顺序)相同

            c)返回值必须相同

            d)子类覆盖方法的访问权限大于等于父类被覆盖方法的访问权限

            e)子类不能抛出比父类异常更大的异常(RuntimeException例外)

     5)隐藏父类的成员(字段)   

多态对象:调用隐藏成员,调用的是父类的

                      调用覆盖成员,调用的是子类的        

 

20、static:类成员

字段:所有对象共享

    方法:静态方法不能直接访问非静态的成员,如果需要访问,产生实例访问;

          非静态方法能够直接访问静态成员和非静态成员

          静态方法中不能有this、super关键字

    块:内存中只执行一次,通常用来初始化静态成员

    内部类

21、final:终态的

    变量:不能第二次赋值,而且必须有初始值

    方法:不能被重写

类:不能被继承

22、abstract:

   抽象方法必须在抽象类中,抽象类中不一定要有抽象方法

   抽象类没有实例

   抽象类可以有父类,父类可以是抽象类也可以是非抽象类

   抽象类有构造器,不能用来产生本类实例,构造器用来间接产生子类实例时使用

  abstract不能与static、final、private一起使用

23、异常处理:

   1)try{}catch()finally{}

   2)throws   方法声明后 throws 异常类

   3)throw    句子(通常是if)后throw 异常类的实例

   4)自定义异常类  extends  Exception或者RuntimeException 

24、方法重写(override)和 重载(overlord)的区别

重写override:子类中出现与父类中签名相同的方法、访问修饰符要等于高于父类、返回值类型,参数列表都相同

重载overlord:一个类内部出现两个及两个以上方法名相同、参数列表不同(参数类型,参数个数,参数类型的顺序)的方法

 

25、动态多态和静态多态

    动态多态(运行时多态):运行过程中才知道调用那个方法,指的是方法重写

    静态多态(编译时多态):编译时就知道所调用的方法,指的是方法重载

 

26、如果父类中没有空参构造

那么子类必须同super()的方式显示的调用父类构造

建议:如果父类中出现带参构造,那么必须手动添加空参构造

例:下列代码的运行结果是( B

classA{

     public  A(int a){System.out.println(“A”);}

}

class B extends A{

    publicB(){

        super(5);//必须加上这一块,用super()显示的调用父类中的方法

    }

    public voidma(){System.out.println(“ma”);}

}

public class test{

    public static void main(String[]args){

B b=new B();

b.ma();

    }

}

A.  打印输出ma

B.  编译错误

C.  打印输出A

D.  打印输出A  ma

 

27、 static

表示静态的,修饰的内容属于类成员;被该类的所有对象共享,建议使用类名.的方式访问;修饰的内容在类加载的时候,执行;只能访问被static修饰的内容;修饰的内容只在类加载的时候执行一次。

可以修饰的内容:修饰属性、修饰方法、作为代码块使用 jdbc 加载驱动的时候

    static{

        Class.forName("");//作为代码块使用

    }

  特点:

    1.修饰的内容属于类成员

    2.修饰的方法,不能被重写,可以被重载

    3.修饰的内容,执行一次

例:public class HelloWorld{

public staticvoid main(String args[]){

method();

}

public voidmethod(){

try{

System.out.println("hello我执行");

}

finally{

System.out.println("我就不执行");

}

  }

}

编译运行后,输出结果是什么?(D )

A."hello 我执行"

B."我就不执行"

C."hello 我执行"

"我就不执行"

  D.代码不能编译

因为main方法是用static修饰的静态方法,调用的方法也必须用static修饰,而method();方法没有被static修饰

 

28hashcode()返回的是对象的内存地址对应的int类型数据,但是我们可以重写hashCode()方法,返回的就不再是内存地址。

hashcode()相同的对象,这两个对象不一定相同;如果两个对象相同,则hashcode()一定相同。

 

29、java中的访问修饰符

public: 所有

protected: 自己、同一包中、子类可以访问

default: 默认什么都不加,就是default,自己、同一包中可以访问,但是比protected级别要低即限制更多

friendly: 自己、同一包中可以访问

private: 自己

以下代码的运行结果是:( C  )

1. abstract class abstrctIt {

2.   abstractfloat getFloat ();

3. }

4. public class AbstractTest extends AbstractIt {

5.   privatefloat f1 = 1.0f;

6.   privatefloat getFloat () {return f1;}

7. }

A. 编译成功

B. 第6行产生错误,导致运行失败

C. 第6行产生错误,导致编译失败

D. 第5行产生错误,导致编译失败

默认什么不加的访问修饰符是default,default比private限制少(即更高级),比protected限制多,所有第六行重写方法用的private访问修饰符比父类低级,所有会出现编译失败

 

30、Math.random()获取[0,1)的值,取不到1;

用法:(int)Math.random()*n+1;取到1到n之间的整数

 

31、数组、集合、字符串之间的转换

a. Arrays.asList() //将数组转换成集合

例:List list = Arrays.asList(names);//将数组转换成集合。

b.String.valueOf() //将数组转换成字符串、也可将整数转换成字符串

例:char []ch1 = {'a','c','a','b','a'};

     String str2 = String.valueOf(ch1);

例:int num = 123456;

     String str =String.valueOf(num);

c.toCharArray()将字符串转换成数组

例:String str = "gdfgdfgd";

char[] ch = str.toCharArray();

   d.Arrays.toString()将字符数组变成字符串特定格式输出,如[1,2,3]

  例:String str1 = Arrays.toString(ch);

        System.out.println(str1);

   e.str.reverse();将字符串反转

   例:StringBuffersb =new StringBuffer("adfsdsd");

        sb.reverse();

   f.

32、replace();函数

    例1//将字符串"abcdabcdabdcadcbadcb"的字符出现的次数输出

        Stringnum = "abcdabcdabdcadcbadcb";

        String t = num.replace("a","");

        System.out.println(num.length()-t.length());

        replaceAll(),用正则表达式

    例2//将字符串中的数字去除  

String num1 = "ab23c7da45bc5da65bd5c67ad7cb9adcb";

        String t1 = num1.replaceAll("[0-9]", "");

        System.out.println(t1);

    例3//计算字符串的长度,一个字符算两个       

        byte[]b =str.getBytes();

        System.out.println(b.length);//若出现一个汉字代表3个字节的情况,将Utf-8换成GBK就可以了

       

        String m = str.replaceAll("[\u4e00-\u9fa5]", "xx");

        System.out.println(m.length());

 

33、DecimalFormat();将数字转换成特定的格式

例://数组格式化 int num = 1234567; 换成123,4567

int num = 1234567;

DecimalFormat f =new DecimalFormat("#,####");

        String t =f.format(num);

        System.out.println(t);

    例: //将数组转换成123,4567.89的格式

doubled = 1234567.88898890;

        DecimalFormat  f =new DecimalFormat("#,####.##");

        System.out.println(f.format(d));

34、String类型是否可以被继承,为什么?

    不能被继承,因为是被final修饰的类

 

35、String类型是否是基本类型,比较String类型变量时,== 和equals有何区别?

    不是,是引用类型

    a.如果 String类型是直接赋值 == 和 equals 效果相同

     String a = “abc “;

     String b = “abc”;

      a ==b 和 a.equals(b)都为true

    b.如果String是通过new构建的 == 和equals效果不同

     String a = new String(“abc”);

     String b = new String(“abc”);

      a ==b 结果为false

      a.equals(b)结果为true

 

36、char类型中是否可以存放一个汉字,为什么?

    可以,char类型中存放的数据以Unicode码存放。

 

37、Random()函数

    //获取1-35之间的随机数

    //第一种方法

Random r = new Random();

int n = r.nextInt(35)+1;

//第二种方法Math.random()是取得[0,1)之间的随机小数,取不到1。

int n =(int) (Math.random()*35+1);

 

java工具类

Object:引用类型的根,是所有类的超类,是java中唯一一个没有父类的类

1、toString():将对象转成字符串

2、equals()和==的区别:

     ==:可以判断基本数据类型和引用数据类型

         引用数据类型,表示两个对象的引用是否相等,即栈里面引用的地址是否相等

     equals:可以判断引用数据类型

引用数据类型:表示两个对象的引用是否相等,但是包装类、String、Date、File除外(这些判断的是对象的值是否相等,即堆内存里面的值是否相等)

Stringstr1 = “abc”;

//创建一个字符串池中的对象,如果里面有此对象了就不再创建了,直接用即可

Stringstr2 = “abc”;

Stringstr3 = new String(“abc”);

Stringstr4 = new String(“abc”);

//可能产生两个或一个对象,在堆内存中首先new出一个对象,再复制到字符串池当中,如果字符串池中有此对象,即不复制。所有堆内存中的对象是肯定存在的,字符串池中的对象不一定

System.out.println(str1==str2);true

System.out.println(str3==str4);false

//str3在堆内存中new出一个内存、str4在堆内存中重新new出一个内存,在堆内存中相当于等号的右边。在栈内存中,指向堆内存中的引用值不一样,所有为false

System.out.println(str1==str3);false

//str1是在堆内存中的字符串池里,为“abc”,str3在堆内存new出一个对象‘abc‘占用一块内存,并且复制到字符串池中,如果字符串池中有abc了,即不复制。

System.out.println(str1.equals(str2));true

System.out.println(str3.equals(str4));true

System.out.println(str1.equals(str3));true

//equals在String类型比较的堆内存的值是否相等,str1字符串池中的内存为abc,str3在堆内存中new出的对象是abc,这两个对象虽然分配的内存不同,但是值相等,所以为true

3、重写equals方法必须先重写hashcode方法

相等的对象必须具有相同的哈希码,具有相同哈希码的对象不一定相等

3、clone()克隆

浅表克隆:复制原对象的所有变量的备份,但是引用类型的变量指向原对象的数据

     必须实现一个接口implements Cloneable

     重写Object类的克隆方法clone()

深表克隆:复制原对象的所有变量的备份,包括引用类型

4、反射Class.forName(“com.A”);

破坏了底层的封装性

5、包装类

byteByte

shortShort

longLong

floatFloat

doubleDouble

BooleanBoolean

intIntegar

charCharacter

包装类与字符串转换:

     xxxValue():转换成其他基本类型

    包装类-à字符串 toString()

        System.out.println(i.toString());

    字符串-à整形 parseXxx()

        int i4 =Integer.parseInt(“123”);

        double i5 =Double.parseDouble(“123.456”);

装箱和拆箱:JDK1.5只会自动装箱和拆箱

     装箱:基本数据类型转换为引用数据类型

         Integer i5 = 10;

     拆箱:引用数据类型转换为基本数据类型

         Integer i5 = 10;

         int i6 = i5;

6、String类

charAt()方法:一般与for循环一起,遍历字符串

    Stringstr = “Hello Java,Hello World”;

     for(int i=0;i

         System.out.println(charAt(i));

     }

concat()方法;拼接字符串,将指定字符串连接到此字符串的结尾

     str.concat(“s”);  //得到Hello Java,Hello Worlds

startWith()方法;测试此字符串是否已指定的前缀开始,boolean

     str. startWith(“Hello”); //true

format()方法:将字符串按照某种格式输出

        inti=1;intj=2;

     System.out.println(String.format("%d+%d=%d",i,j,i+j));//1+2=3

indexOf(String)方法:输出字符串第一次出现的索引,没有的话输出-1

     System.out.println(str.indexOf("Hello"));//0

lastIndexOf()方法:输出字符串最后一次出现的索引

replace(old String, new String)方法:替换字符串

split()方法:分割字符串

substring(int start,int end)方法:截取字符串

toCharArray()方法:变成字符数组

trim()方法:去掉字符串两端的空格,字符串中间的去不掉

toUpperCase()方法:将字符串转化为大写

 

7、StringBuffer和StringBuilder区别

StringBuffer线程安全的,同步的,效率比较低,JDK1.0之后出现

StringBuilder线程不安全,不同步的,效率比较高,JDK1.5之后出现

 

8、StringBuffer方法

StringBuffersb = new StringBuffer(“aaa”);

append 追加字符串

sb.append(“bb”).append(“bb”);

delete 删除

sb.delete(1,2).delete(1,2);

insert 插入

sb.insert(1,”22”).insert(1,false);

setCharAt 修改

sb.setCharAt(1,’Q’);

replace 替换

sb.replace(1,3,”MMM”);

reverse 反转

sb.reverse();

 

10、Math方法

    Math.ceil(2.4);//3取比值大的最小整数

    Math.ceil(-2.4);//-2

    Math.floor(2.5);//2取比值小的最大整数

    Math.round(2.5);//3四舍五入

    Math.round(-2.5);//-2

    Math.random()//范围是[0,1)

    Math.random()*40+60;//取60到99的成绩

    Random方法:范围是[0,1)

        Randomran  = new Random();

        for(inti=0;i<10;i++){

            intscore = ran.nextInt(41)+60;//从60到100

            System.out.println(score);

        }

11、Date方法

SimpleDateFormat类:改变时间的格式

SimpleDateFormatsdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

Datedate = new Date();

//将日期格式转换成指定的字符串

Stringtime = sdf.format(date);

System.out.println(time);//现在的时间以yyyy/MM/dd HH:mm:ss格式输出

 

//将格式化的字符串转换成日期对象

Datedate = sdf.parse(“1995/07/12 03:00:00”);

System.out.println(date);

 

TimeZone()设置时区

TimeZonetime=TimeZone.getTimeZone("America/Los_Angeles");

    Calendar c2=Calendar.getInstance(time,Locale.US);

    Date d=c2.getTime();

 

GregorianCalendar单独获取年、月、日

GregorianCalendar gc =newGregorianCalendar(2017,3,5);

    System.out.println(gc.get(Calendar.MONTH));

 

System.currentTimeMillis();通常用于循环运算的时间

        long startTime = System.currentTimeMillis();

        for(){}

        longendTime = System.currentTimeMillis();

        longtime = endTime- startTime//计算出运算的时间

 

集合:

1、集合和数组的区别:

    数组:可以包含基本数据类型或者引用数据类型的对象,数据定长的,访问较快

    集合:只能包含引用数据类型的对象,不定长。

2、集合分类:

    Set:集 无序,不重复,父接口为Collection

        add();添加元素

        addAll(Collection);添加子集合

        contains();是否包括元素

        containsAll();是否包含子集合

        isEmpty();Boolean判断集合长度是否为0

        remove();移除元素

        removeAll();移除一个子集合

        size();集合的大小

        toArray();将集合转换成数据

 

        Set集合的遍历  Iterator 迭代器

        Setset = new HashSet();

        Iteratorit = set.iterator();

        while(it.hasNext()){

            Objectobj = it.next();

            System.out.println(obj);

        }

        Set集合的遍历  增强for循环

        for(Object obj:set){

            System.out.println(obj);

        }

 

        HashSet和TreeSet的区别:

            HashSet:内部对象散列存取,顺序和输入的顺序不同

            TreeSet:元素会进行升序排序(元素是可比较的),顺序和输入的顺序也不同

 

    List:列表 有序,重复,父接口为Collection

        add();添加元素

        addAll(Collection);添加子集合

        add(key,元素);插入元素

        get(key);获取元素

        indexOf(元素);返回元素的索引值,如果没有则返回-1

        remove(key);移除元素

        removeAll();移除一个子集合

        set(key,元素);修改元素

        toArray();转换成数组

       

        List集合的遍历  普通for循环

Listlist = new ArrayList();

for(inti;i

    Object obj = list.get(i);

    System.out.println(obj);

}

List集合的遍历  增强for循环

for(Object obj:list){

           System.out.println(obj);

}

List集合的遍历  Iterator 迭代器

        Iterator it = list.iterator();

        while(it.hasNext()){

            Objectobj = it.next();

            System.out.println(obj);

        }

 

        ArrayList和LinkedList区别:

            ArrayList底层物理存储为线性的(数组的存储方式),查询效率高,删除、添加等操作效率比较低

            LinkedList底层物理存储为链表的,查询效率低,删除、添加效率高

        ArrayList和Vector区别:

           两者底层物理存储为线性的

            ArrayList:线程不安全,不同步的,数据不安全,效率比较高

            Vector:线程安全的,同步的,数据安全,效率比较低

 

Map:字典 键值对存储 key唯一,value可重复

    put(key,values);添加元素

    putAll(map);添加集合

    remove(key);移除一对元素

    size();集合长度

    containkey(key);是否包含某个键

    containvalue(value);是否包含某个值

 

    Map集合的遍历 keySet()

    Set set = map.keySet();

    Iterator it = set.iterator();

    while(it.hasNext){

        Object key = it.next();

        Object value = map.get(key);

        System.out.println(key+”:”+value);

    }

    Map集合的遍历 entrySet()

    Iterator it = map.entrySet().iterator();

    while(it.hasNext()){

        Map.Entry entry = (Map.Entry)it.next();

        System.out.println(entry.getKey()+”:”+entry.getValue());

    }

 

    HashMap和Hashtable的区别:

        HashMap:键值对允许为null,线程不安全,不同步,效率比较高

        Hashtable:键值对不允许为null,线程安全,同步,效率比价低

    HashMap和TreeMap的区别:

       HashMap:基于哈希,是无序的

        TreeMap:基于树型结构的,按照键升序排序

 

3、Collections类:

Collections.sort():只针对List集合,集合中的元素必须是可比较的,如果为引用类型,则必须实现Comparator、Compareable(常用)接口

Collections.shuffle(list):打乱顺序

Collections.rotate(list,int i):根据指定的长度,轮换指定列表中的长度

Collections.reverse(list):反转集合

 

 

泛型:数据类型参数化

1、public void arr(T t1,T t2){

        Ttemp = t1;

        t1= t2;

        t2= temp;

}

2、泛型:安全的,避免了数据类型转换的风险

3、泛型约束:entends:如果有多个约束则使用&连接,约束只能有一个类,可以有多个接口

4、通配符?

    上届通配符:? extends A:表示A或者A的子类

    下届通配符:? super A:表示A或者A的父类类型

    Listlist = new ArrayList();

    List listobj = list;//成立

    Listlistobj = list;//不成立 在泛型中是同级关系

 

文件

1、构造方法

        Filefile1 =new File("D:\\a.txt");

        File file2 =new File("d:\\UI","a.txt");

        File file3 = new File("D:\\UI");

        Filefile4 =new File(file3,"a.txt");

2、mkdirs()创建多层文件夹

    File file5 = new File("D:\\UI\\aaa");

        if(!file5.exists()){

           file5.mkdirs();

        }

3、getAbsolutePath()打印文件路径

   getPath()打印文件路径

    System.out.println(file5.getAbsolutePath());//D:\UI\aaa

4、getName()()获取文件名//aaa

5、getParent()获取文件目录,不包含文件名//D:\UI

6、isHidden()文件是否被隐藏//false

7、isDirectory()判断是否是文件夹//true

8、isFile() 判断是否是文件

9、exists() 判断是否存在

10、newDate(file5.lastModified()) 获取最后一次修改的日期

11、length() 文件的字节数

12、file5.list() 文件名的遍历

  String[]str =file5.list();

  for(String s :str){

      System.out.println(s);

    }// 3.doc

5.FEM

e.txt

13、file5.listFiles() 文件的遍历

    File[]files = file5.listFiles();  

for(File f :files){

        if(f.isFile()){

           System.out.println("文件"+f.getName()+"\t"+new Date(f.lastModified()));

        }else{

           System.out.println("文件夹"+f.getName());

        }

    }//文件3.docFri Feb 24 10:33:28 CST2017

文件5.FEM   Fri Feb 24 10:33:37 CST 2017

文件e.txt   Fri Feb 24 10:33:32 CST 2017

14、File.listRoots(); 盘符的遍历

    File[] f1 = File.listRoots();

    for(Filef :f1){

        System.out.println(f.toString());

    }// C:\

D:\

 

文件IO流

1、 字节流

FileInputStream 输入流 读文件

BufferedInputStream输入流读文件

 

FileOutputStream输出流写入文件

BufferedOutputStream输出流写入文件

字符流

FileReader输入流读文件

DataInputStream输入流 读文件

 

FileWriter输出流 写入文件

DataOutputStream输出流 写入文件

 

2、FileInputStream 读取英文文件

    FileInputStreamfis = new FileInputStream("D:\\UI\\bbb.txt");

    intch = 0;

    while((ch= fis.read()) != -1){ //read从此输入流中读取一个数据字节,返回值为int

        System.out.print((char)ch);

    }

fis.close();//此程序不能读中文

3、FileInputStream 读取中文文件

    FileInputStreamfis = new FileInputStream(“D:\\UI\\bbb.txt”);

    byte[]bt = new byte[1024]; //将字节读入字节数组

    intlen = 0;

    while((len= fis.read(bt))!=-1){

        System.out.print(newString(bt,0,len));

    }

4、FileOutputStream 写入文件

    //搭建管道

FileOutputStream fos = new FileOutputStream(“D:\\UI\\bbb.txt”);

    //读写操作

    fos.write(98);//相当于b

    fos.write('a');

    String str = "ssdsdfsf";    //写入字符串

    byte[] b = str.getBytes();

    fos.write(b);

    fos.flush();//强制性的刷新缓冲区

    //关闭流

    if(fos !=null){

        fos.close();

    }

5、DataOutputStream 写入boolean、double等类型的文件

    FileOutputStream fos = null;

    DataOutputStream dos = null;

    fos =new FileOutputStream("D:\\UI\\bbb.txt");

    dos =new DataOutputStream(fos);

           

    dos.writeBoolean(true);

    dos.write('a');

    dos.writeDouble(12.34);

    for(inti=0;i<10;i++){

        doubled = Math.random();

        dos.writeDouble(d);

    }

    dos.flush();

       

    dos.close();

    fos.close();

6、DataInputStream读取boolean、double等类型的文件

    FileInputStream fis =null;

    DataInputStream dis = null;

   

    fis =new FileInputStream("D:\\UI\\bbb.txt");

    dis =new DataInputStream(fis);

    booleanbool =dis.readBoolean();

    System.out.println(bool);// true

    for(inti=0;i<10;i++){

        doubleb =dis.readDouble();

        System.out.println(b+"\t");

    }

    dis.close();

    fis.close();

    // -6.414939283240485E-86  

4.7384486223731214E285 

7.602269187305488E-298 

-1.4027415471626017E-278   

9.32553721042958E-38   

-1.0852988920338364E40 

4.6544251087746895E49  

1.0777059597027002E40  

4.954807472569955E232  

4.957881657894938E232  

               

7、序列化和反序列化

    序列化:将对象的数据存储到文件 ObjectOutputStream

    反序列化:将文件中的数据重新读到对象 ObjectInputStream

    例题:在程序中创建一个Student类型的对象,并把对象信息保存到d:\\io\\student.txt文件中,然后再从文件中把Student对象的信息读出显示在控制台上。

    //先建立Student

publicclassStudentimplementsSerializable {//编写一个可序列化的类  implements Serializable

    privateintid;

    private String name;

    private String birth;

    public Student(intid, Stringname, String birth) {

        super();

        this.id = id;

        this.name = name;

        this.birth = birth;

    }

    @Override

    public String toString() {

        returnid+""+name+" "+birth;

    }

}

//再进行序列化,即将Student对象写入文件,直接抛出异常范例

publicclass SObjectOutputStreamTest throws IOException{

    publicstaticvoid main(String[] args) {

            Students1 = new Student(1,"we","1987-3-4");

        Students2 = new Student(2,"you","1988-3-9");

       

        FileOutputStreamfos = null;

        ObjectOutputStreamoos = null;

 

        fos = new FileOutputStream("D:\\io\\student.txt");

        oos = new ObjectOutputStream(fos);

           

        oos.writeObject(s1);

        oos.writeObject(s2);

 

        oos.close();

        fos.close();

    }

}

//进行反序列化,将文件中的语句读出到控制台,用try catch抓住异常范例

publicclass SObjectInputStreamTest {

    publicstaticvoid main(String[]args) {

        FileInputStream fis = null;

        ObjectInputStream ois = null;

        try {

           fis =new FileInputStream("D:\\io\\student.txt");

           ois =new ObjectInputStream(fis);

           

           Student s1 = (Student)ois.readObject();

           Student s2 = (Student)ois.readObject();

           

           System.out.println(s1.toString());

           System.out.println(s2.toString());

        } catch (FileNotFoundException e) {

           e.printStackTrace();

        }catch (IOException e) {

           e.printStackTrace();

        }catch (ClassNotFoundException e) {

           e.printStackTrace();

        }finally{

           try {

               if(ois!=null){

               ois.close();

               }

            }catch (IOException e) {

               e.printStackTrace();

           }

           try {

               if(fis!=null){

               fis.close();

               }

           }catch (IOException e) {

               e.printStackTrace();

           }

        }

    }

}

 

多线程

1、 进程:一个应用程序的一次运行,包含多线程

多线程:一个应用程序运行过程中的某些独立的片段

2、 进程与线程的区别(优缺点)

进程:进程间切换耗费系统资源,数据安全(独立的代码和数据空间)

线程:线程间切换系统耗费比较小,数据不安全(共享代码和数据空间)

3、 编写线程(掌握)

a. 继承Thread类

publicclass ThreadTest1 {

publicstaticvoid main(String[] args) {

        ThreadDemotd = new ThreadDemo();

        td.start();

        for(inti=0;i<1000;i++){

            System.out.println("the main is:"+i);

        }

}

    }

publicclass ThreadDemoextends Thread {

    @Override

    publicvoid run() {

        for(inti=0;i<1000;i++){

            System.out.println("the run is:"+i);

        }

    }

}

b. 实现Runnable接口(推荐,因为java类和类是单继承的)

publicclass RunnableTest {

    publicstaticvoid main(String[] args) {

        RunnableDemord = new RunnableDemo();

        Threadthread = new Thread(rd);

        thread.start();

        for(inti=0;i<1000;i++){

            System.out.println("the main is:"+i);

            Thread.sleep(500);

        }

    }

}

 

publicclass RunnableDemoimplementsRunnable{

    @Override

    publicvoid run() {

        for(inti=0;i<1000;i++){

            System.out.println("the run is:"+i);

            Thread.sleep(500);

        }

    }

}

4、CPU调度

    抢占式

    轮时间片

5、让线程从运行状态进入到阻塞状态

Thread.yield();//暂停

Thread.sleep(500);//休眠

join();//在A线程中加入B线程,待B线程运行完后,再运行A线程

6、线程其他方法

    setName():给线程起名字,默认的名字Thread-X;x从0开始

getName():得到线程的名字

Thread.currentThread().getName():得到当前运行线程的名字

    setPriority();设置线程的优先级数值

getPriority();获得线程的优先级数值

setDaemon(true);设置为守护线程

7、用户线程和守护线程的区别

    用户线程(前台线程):必须执行完毕

    守护线程(精灵线程、后台线程):线程体执行完毕也可,执行不完毕也可以,例如垃圾回收

8、线程同步:

    加锁同步:一个对象只能有一把锁

    语句加锁 synchronized(对象){}:可以对本类对象(this)和其他类对象(new 类)加锁;某个方法中的某些句子加锁,无法得知哪些方法是被synchronized保护的

    方法加锁 synchronized void methodA(){}:只能对本类对象加锁;整个方法的所有语句加锁;可以显示得知方法是被synchronized保护的

9、死锁:两个线程,彼此在等待对方占据的锁

    锁的几种归还方式:

        a.基本上执行完同步的程序代码后,锁会自动归还

        b.用break语句跳出同步的语句块,不过这对于写在方法声明的synchronized没有作用

        c.遇到return语句

        d.遇到了异常

10、线程的生命周期

   

 

网络编程(java.net)

1、七层协议:

   

2、两台电脑之间的通信

    ip:ipv4(32位)、ipv6(128位)

    端口:1521(oracle)、8080(Tomcat默认的端口)、21(ftp)、80(默认的)

    协议:

UDP:传输层,用户数据的协议,无连接的协议,不可靠的,不能够准确到达,效率比较高,适用于数据量比较大并且允许出错的,比如网络视频

TCP/IP:传输层 ,有连接的协议,可靠的、准确的到达,效率比较低

http:https:ftp等在应用层

    http协议:明文无状态的

    https:密文

3、客户端和服务器端

    基于UDP的

客户端:

Socket client = new Socket("10.25.116.222",8088);

    服务器端:  

        ServerSocketserver =ServerSocket(8088);ji

        Socket s =server.accept();

4、 端口号范围是0-65535,用户普通网络程序用1024以上

5、 InetAddress此类表示互联网协议ip地址

InetAddress address = InetAddress.getByName(“主机名”);

6、getHostName()获取此IP地址的主机名

getHostAddress()获取IP地址字符串

getByName()通过主机名获取ip地址

getLocalPort()获取本程序所用接口

 

JAVA7新特性

1、数值型的数据赋值可以使用下划线_ 增加可读性

    不能写在小数点后;

    不能在数值型数据的开始

不能在数值型数据的最后添加

Doublepi = 3.1415_9265

Intbillion = 1_000_000_000

2、 可以声明n进制数据

Int i1= 0b0100;//4二进制前方放0b

Inti2 = 07; //7八进制前方放0

Inti3 = 0x00ad;//十六进制前方放0x

3、switch:表达式:

   jdk1.7以下byte、short、char、int;

jdk1.7以上在上面基础上加上String

4、try(IO流){

Stringstr=br.readLine();

}catch (ArithmeticException | IOException e) {//catch里可以有多个异常类,不能是父子关系

     e.printStackTrace();

}//不用关闭流了,自动资源管理器

5、泛型

    Listlist = new List();//jdk1.7以下

    Listlist = new List< >();  //jdk1.7以上

6、新加G1垃圾回收器 提高效率

7、NIO2

    Files.copy(Paths.get(文件一),Paths.get(文件二));//直接复制文件

    File.createFile();//创建新文件

    File.move();//移动

    File.delete();

    //用WatchService类型实现文件监控

    WatchServicewatchService = FileSystems.getDefault().newWatchService();

 

JDBC

1、编写jdbc程序的步骤:

   1)添加数据库的驱动jar包 ojbc5.jar或者ojdbc6.jar或者classes12.jar

        工程名右击—Build Path—Add External Archives—数据库安装路径—jdbc-ojdbc6.jar

   2)创建驱动类对象  OracleDriver对象

        //创建反射机制

        Class.forName(“oracle.jdbc.driver.OracleDriver”);

   3)连接数据库  Connection

        Stringutl = “jdbc:oracle:thin:@YLMF123-3131857:1521:orcl”;

        Stringuser = “scott”;

        Stringpassword = “tiger”;

        Connectionconn = DriverManager.getConnection(url,user,password);

   4)操作数据库 

        //第一种方法Statement会引起注入,不推荐使用

String sql = "select deptno,dname,loc from dept";

Statement stmt = conn.createStatement();

        ResultSet rs =stmt.executeQuery(sql);//发送sql语句到数据库,然后将查询到的结果返回到ResultSet

        //int I = stmt.executeUpdate(sql);//查询影响的行数

while(rs.next()){

           intdeptno =rs.getInt(1);//列的索引从1开始计

           String dname =rs.getString(2);

           String loc =rs.getString(3);

           System.out.println(deptno+"\t"+dname+"\t"+loc);

        }  

 

        //第二种方法PreparedStatement防止注入 推荐使用

        String sql = "insert into dept(deptno,dname,loc) values(?,?,?)";

        pstmt = conn.prepareStatement(sql);

        intdeptno = 35;

        String dname = "sdfs";

        String loc = "北京";

        pstmt.setInt(1, deptno);//第一个问号放deptno

        pstmt.setString(2, dname);

        pstmt.setString(3, loc);

        pstmt.executeUpdate();//执行删除、插入、修改语句,executeQuery执行查询语句

5)关闭数据库

        rs.close();

        stmt.close();

    conn.close();

2、批处理:

   stmt.addBatch(sql1);

    stmt.addBatch(sql2);//可以执行多句sql语句

   executeBatch();//执行

        String sql="insert intodept(deptno,dname,loc) values(?,?,?)";

        pstmt=conn.prepareStatement(sql);

        pstmt.setInt(1, 51);

    pstmt.setString(2, "电信部");

    pstmt.setString(3, "上海");

    pstmt.addBatch();

   

    pstmt.setInt(1, 52);

    pstmt.setString(2, "实施部");

    pstmt.setString(3, "广州");

    pstmt.addBatch();

 

pstmt.executeBatch();

3、事务

    conn.setAutoCommit(false):设置为手动提交事务

   conn.commit():提交

    conn.rollback():回滚,catch里面

4、元数据

    DatabaseMetaData:数据库的元数据

        DatabaseMetaDatadmd = conn.getMetaData();

        dmd.getUserName();//获得数据库名称

        dmd.getURL();//获得接口名jdbc:oracle:thin:@YLMF123-2141651:1521:orcl                            dmd.getDriverName();//当前驱动Oracle JDBC driver

    ParameterMetaData:参数的元数据

    ResultSetMetaData:结果集的元数据

        ResultSetMetaDatarmd = rs.getMetaData();

        intcount = rmd.getColumnCount();//获取结果集有多少列

        for(int i=0;i

        System.out.println(“列标题”+rmd.getColumnLable(i)+”数据类型”+rmd.getColumnTypeName(i));

        }

5、DAO:

 1)实体类:一个对象相当于数据库表中的一行

    privateintdeptno;

    public Dept() {}

    publicint getDeptno() {

        returndeptno;

    }

    publicvoid setDeptno(intdeptno) {

        this.deptno =deptno;

    }

    @Override

    public String toString() {

        return"Dept [deptno=" +deptno +",dname=" +dname +", loc=" +loc +"]";

    }

 2)操作接口:可扩展

    publicinterface DeptDao {

    void insertDept(Dept dept);

    void updateDept(Dept dept);

    void deleteDept(intdeptno);

    List  getAllDepts();

    DeptgetDeptByDeptno(intdeptno);

}

 3)操作类:

    publicclass DeptDaoImplimplementsDeptDao {

    @Override

    publicvoid insertDept(Dept dept) {

        Connection conn = null;

        PreparedStatement pstmt = null;

        try {

           conn = DbUtils.getConnection();

           String sql ="insert into dept(deptno,dname,loc)values(?,?,?)";

           pstmt =conn.prepareStatement(sql);

           pstmt.setInt(1, dept.getDeptno());

           pstmt.setString(2, dept.getDname());

           pstmt.setString(3, dept.getLoc());

           

           pstmt.executeUpdate();

        } catch (SQLException e) {

           e.printStackTrace();

        }finally{

           DbUtils.closeStatement(pstmt);

           DbUtils.closeConnection(conn);

        }

    }

    }

 4)工具类:将重复的代码包装成工具类

    publicclass DbUtils {

    privatestaticfinal StringURL ="jdbc:oracle:thin:@YLMF123-2141651:1521:orcl";

    privatestaticfinal StringUSER ="scott";

    privatestaticfinal StringPASSWORD="tiger";

   

    private DbUtils(){}//构造方法

    static{

        try {

           Class.forName("oracle.jdbc.driver.OracleDriver");

        } catch (ClassNotFoundException e) {

           e.printStackTrace();

        }

    }

   

    publicstatic Connection getConnection(){

        Connection conn = null;

        try {

           conn = DriverManager.getConnection(URL,USER,PASSWORD);

        } catch (SQLException e) {

           e.printStackTrace();

        }      

        returnconn;

    }

   

    publicstaticvoid closeConnection(Connectionconn){

        try {

           if (conn !=null) {

               conn.close();

           }

        } catch (SQLException e) {

           e.printStackTrace();

        }

    }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Html

1、属性

    align:对齐方式

    bgcolor:背景颜色

target:

_blank在新窗口打开 _self默认,在相同的框架打开

_parent在父框架集中打开 _top在整个窗口打开

framename在指定的窗口打开

2、注释

   

3、文件路径

    同一目录下:文件名

    上级目录:../

    下级目录:从目标文件开始的文件目录

4、表格

    tr行、td列、th表头

代表文字和行之间的距离-->

学生成绩表

姓名年龄成绩

张三2134

李四56

王五代表列合并,rowspan代表行合并 -->

5、表单form

表单域input

    type:text文本框、password密码、radio单选按钮、checkbox:复选框

             是否需要在本书再版时立即通知您:

             

             

          submit提交按钮、reset重置按钮、button普通按钮

              

          hidden隐藏域(用来传送数据,不安全)

file:文件上传(两个条件:method=”post”、enctype=”multipart/form-data”)

    name:表单域的名字

    value:表单域的初始值

    size:表单元素的长度,只适用于text、password

    maxlength:表单元素中可以输入的最大字符数,只适用于text、password

    checked:boolean属性,指定按钮是否是被选中的,只适用于radio、checkbox

    readonly:只读的,只适用于text,数据能提交到后台

    disabled:表示表单域不能用,数据不能提交到后台

多行文本textarea

    //表示可以输入5行20列

下拉列表框select

   

域容器fieldset

   

        小标题

        用户名:

        密码:

6、框架frame

    frameset:分割窗口

rows分割行cols分割列

        frameborder:是否显示框架,0不显示、1显示,默认为1

        framespacing:框架间的间距

    frame:框架

        src:指定框架显示的HTML文件的位置

        noresize:设置不可以调整窗口的大小

        bordercolor:框架边框的颜色

 

 

     

     

 

 

</span></p> <p><span style="font-size:16px;">  <body>浏览器版本较低,请升级后访问</body></span></p> <p><span style="font-size:16px;">

        marginwidth:窗口内的内容与窗口左右边缘的距离

        marginheigth:窗口内的内容与窗口上下边缘的距离

        scrolling:是否显示滚动条,no-不显示、yes-显示、auto-默认自动设置

    noframes不支持框架的浏览器

        注意:标签与标签不能同时使用,不过,如果添加包含一段文本的

            标签,就必须将这一段文字嵌套于<body></body>标签内</span></p> <p><span style="font-size:16px;">        </span></p> <p><span style="font-size:16px;"> </span></p> <p><span><span style="font-size:16px;"><span>  </span>JavaScript</span></span></p> <p><strong><span style="font-size:16px;">1、增强代码可读性</span></strong></p> <p><span style="font-size:16px;"><--  JavaScript代码 //--></span></p> <p><strong><span style="font-size:16px;">2、语法结构</span></strong></p> <p><span style="font-size:16px;">    1)大小写敏感</span></p> <p><span style="font-size:16px;">    2)一句话结束最好加;</span></p> <p><span style="font-size:16px;">    3)注释 //  /**/</span></p> <p><span style="font-size:16px;">    4)弱类型</span></p> <p><strong><span style="font-size:16px;">3、变量命名</span></strong></p> <p><span style="font-size:16px;">    1)以字母、下划线_或美元符号$开头</span></p> <p><span style="font-size:16px;">    2)余下的字符可以是字母、下划线_或美元符号$、数字</span></p> <p><span style="font-size:16px;">    3)最长为255个字符</span></p> <p><span style="font-size:16px;">    4)不能有空格、大小写敏感</span></p> <p><span style="font-size:16px;">    5)不能使用JavaScript中的关键字或者保留字命名</span></p> <p><strong><span style="font-size:16px;">4、JS变量类型</span></strong></p> <p><span style="font-size:16px;">    Undefined:未定义的类型、String、Boolean、Null、Number五种</span></p> <p><span style="font-size:16px;">    可以使用typeof(object)来获取变量类型</span></p> <p><strong><span style="font-size:16px;">5、声明 var 变量名[=初始值]</span></strong></p> <p><span style="font-size:16px;">    vari = 10;</span></p> <p><span style="font-size:16px;">    varj;</span></p> <p><span style="font-size:16px;">    alert(typeof(i));<span style="color:#00B050;">//</span><span style="color:#00B050;">判断i</span>的类型 number</span></p> <p><span style="font-size:16px;">    docement.write(123);</span></p> <p><strong><span style="font-size:16px;">6、类型转换</span></strong></p> <p><span style="font-size:16px;">    字符串>数值>布尔值 低级与高级相加,强制转换成高级的</span></p> <p><span style="font-size:16px;">    字符串à数值</span></p> <p><span style="font-size:16px;">    parseInt()、parseFloat()、Number()</span></p> <p><strong><span style="font-size:16px;">7、运算符</span></strong></p> <p><span style="font-size:16px;">    算术运算符+、-、*、/、%、++、--(前置先自增再运算、后置先运算后自增)</span></p> <p><span style="font-size:16px;">    比较运算符 ==、>、>=、<、<=、!=</span></p> <p><span style="font-size:16px;">    逻辑运算符 &&、||、!非</span></p> <p><span style="font-size:16px;">    赋值运算符 =、+=、-=、*=、/=</span></p> <p><strong><span style="font-size:16px;">8、try{}catch(){}</span></strong></p> <p><span style="font-size:16px;">    try{vara=c}catch(e){alert(e);}</span></p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1276330637388693504"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(Java基础知识学习笔记总结)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1835059996816142336.htm" title="JAVA相关知识" target="_blank">JAVA相关知识</a> <span class="text-muted">M_灵均</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>JAVA基础知识说一下对象创建的过程?类加载检查:当Java虚拟机(JVM)遇到一个类的new指令时,它首先检查这个类是否已经被加载、链接和初始化。如果没有,JVM会通过类加载器(ClassLoader)加载这个类。分配内存:JVM为新对象分配内存。这个内存分配是在堆(Heap)上进行的,堆是JVM用来存储对象实例的地方。分配内存的大小在类加载时就已经确定,因为类的结构(包括字段和方法)已经确定。</div> </li> <li><a href="/article/1834407653426688000.htm" title="Java学习路线:从零基础到高级开发者的完整指南" target="_blank">Java学习路线:从零基础到高级开发者的完整指南</a> <span class="text-muted">何遇mirror</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>初学者入门指南1.环境搭建安装JDK:下载并安装最新版本的JDK(JavaDevelopmentKit)。配置环境:设置JAVA_HOME环境变量,并将bin目录添加到PATH中。选择IDE:使用Eclipse、IntelliJIDEA或其他任何你喜欢的Java集成开发环境。2.Java基础知识HelloWorld:编写你的第一个Java程序。基本语法:学习变量、数据类型(原始类型、包装类型)、运</div> </li> <li><a href="/article/1833435267202117632.htm" title="Android-Jetpack架构组件(二)带你了解Lifecycle,给2021的移动开发一些建议" target="_blank">Android-Jetpack架构组件(二)带你了解Lifecycle,给2021的移动开发一些建议</a> <span class="text-muted">flutter架构师</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">移动开发</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>@OverrideprotectedvoidonResume(){super.onResume();myPresenter.onResume();}@OverrideprotectedvoidonPause(){super.onPause();myPresenter.onPause();}}classMyPresenter{《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战</div> </li> <li><a href="/article/1833221479416819712.htm" title="java基础知识" target="_blank">java基础知识</a> <span class="text-muted">阿拉伯的劳伦斯292</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>1.java简介跨平台性:Java语言的“一次编写,到处运行”特性是这一语言的重要优势,java程序编译成字节码,可以在安装了Java虚拟机(JVM,javavirtualmachine)的不同操作系统上运行面向对象:java是一门完全的面向对象编程语言,支持继承,抽象,封装和多态的特性内存管理:java通过垃圾回收器(GarbageCollector)自动管理内存,这就不用开发者手动释放内存了,</div> </li> <li><a href="/article/1832668070359953408.htm" title="给Java新手的一些建议——Java知识点归纳(Java基础部分)" target="_blank">给Java新手的一些建议——Java知识点归纳(Java基础部分)</a> <span class="text-muted">灬佐手边</span> <div>写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。image.png主要内容为J2SE相关的部分,经过这么多年的Java开发,以及结合平时面试Java开发者的一些经验,我觉得对于J2SE方面主要就是要掌握</div> </li> <li><a href="/article/1831897332170452992.htm" title="《Java基础知识》Java Lambda表达式" target="_blank">《Java基础知识》Java Lambda表达式</a> <span class="text-muted">Limingmingaa</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E8%93%9D%E6%A1%A5%E6%9D%AF/1.htm">蓝桥杯</a> <div>接触Lambda表达式的时候,第一感觉就是,这个是啥?我居然看不懂,于是开始寻找资料,必须弄懂它。先来看一个案例:​@FunctionalInterfacepublicinterfaceMyLamda{voidtest1(Stringy);}​​importdemo.knowledgepoints.Lambda.inf.MyLamda;publicclassLambdaTest{publicsta</div> </li> <li><a href="/article/1831374311198388224.htm" title="linux常用shell指令学习笔记总结【更新中...】" target="_blank">linux常用shell指令学习笔记总结【更新中...】</a> <span class="text-muted">Aliven888</span> <div>文档声明:以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。资料仅供学习交流使用。作者:Aliven8881、简介shell是一个程序,他在用户和操作系统提供了一个面向行的可交互接口。用户在命令行中输入命令,运行在后台的shell把命令转化成指令代码发送给操作系统。Shell提供了很多高级特性,使得用户和操作系统之间的交互</div> </li> <li><a href="/article/1831368593749667840.htm" title="Java基础知识——数组" target="_blank">Java基础知识——数组</a> <span class="text-muted">_M00n</span> <div>数组数组:一组数据的集合官方定义:在内存中通过连续的存储单元存储相同数据类型的有序集合代码表现:[]出现了那么数组出现了数据类型[]变量名初始化数组:变量名=new数据类型[数组的长度];arrs=newint[10];获取数组中的元素:数组变量[索引]索引从0开始到长度-1结束假设长度为10,啊那么根据索引获取元素比如a[10]就是a[0]-a[9]数组的长度:数组变量.lengthpublic</div> </li> <li><a href="/article/1831266311469101056.htm" title="Java学习|Java基础知识" target="_blank">Java学习|Java基础知识</a> <span class="text-muted">进击的小白菜</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>目录类与对象继承封装多态高级话题实践项目类与对象定义与创建类:定义一组具有相同属性和行为的对象的模板。对象:根据类模板创建的实体。示例代码publicclassPerson{Stringname;intage;publicPerson(Stringname,intage){this.name=name;this.age=age;}publicvoidsayHello(){System.out.pr</div> </li> <li><a href="/article/1831114909035884544.htm" title="react 实用学习笔记总结,持续更新~" target="_blank">react 实用学习笔记总结,持续更新~</a> <span class="text-muted">George灬</span> <a class="tag" taget="_blank" href="/search/react/1.htm">react</a><a class="tag" taget="_blank" href="/search/react/1.htm">react</a> <div>React是用于构建用户界面的JavaScript库可以认为是MVC中的V(MVC:模型model-视图view-控制器controller)虚拟DOM(VirtualDOM)DOM(文档对象模型DocumentObjectModel)React通过Diff算法找出虚拟DOM和真实DOM之间的差异,仅渲染修改的这一部分变化,减少了DOM的重绘,提高了效率JSX语法是一种应用于React中的Java</div> </li> <li><a href="/article/1830861417318805504.htm" title="Java基础知识(部分、随手记)" target="_blank">Java基础知识(部分、随手记)</a> <span class="text-muted">木木ᶻ</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>目录基础知识:基本框架:注释:关键字:字面量:(数据类型)变量:注意事项:计算机的存储规则:基础语法:标识符:键盘录入:IDEA项目结构的介绍算数运算符:判断和循环顺序结构分支结构if语句switch语句格式while循环循环结构数组数组的静态初始化数组的地址值和元素访问数组元素访问数组的动态初始化二维数组二维数组的动态初始化Arrays类方法方法的定义带返回值方法的调用注意事项:方法的重载:面向</div> </li> <li><a href="/article/1830355849067982848.htm" title="JAVA基础知识点整理合集(附带思维导图超详细~~~)" target="_blank">JAVA基础知识点整理合集(附带思维导图超详细~~~)</a> <span class="text-muted">Dd12.3</span> <a class="tag" taget="_blank" href="/search/JavaSE/1.htm">JavaSE</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>今天给大家分享一下我学习完JavaSE的思维导图,可以有助于朋友们对于Java基础语法的掌握,和记忆。详情请下载思维导图(全是干货呦~~~)打开思维导图的软件,各大应用商店皆可下载。</div> </li> <li><a href="/article/1828238550601134080.htm" title="Java基础知识总结2" target="_blank">Java基础知识总结2</a> <span class="text-muted">Pikl</span> <div>PATH环境变量PATH环境变量。作用是指定命令搜索路径,在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。4,</div> </li> <li><a href="/article/1827101219554947072.htm" title="[java][基础]Java基础知识" target="_blank">[java][基础]Java基础知识</a> <span class="text-muted">awonw</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>Java标识符java语言中,对于变量,常量,函数,语句块也有名字,我们统统称之为Java标识符命名约定1.类和接口名。每个字的首字母大写,含有大小写。例如,MyClass,HelloWorld,Time等。2.方法名。首字符小写,其余的首字母大写,含大小写。尽量少用下划线。例如,myName,setTime等。这种命名方法叫做驼峰式命名。3.常量名。基本数据类型的常量名使用全部大写字母,字与字之</div> </li> <li><a href="/article/1827004794569584640.htm" title="java基础知识笔记" target="_blank">java基础知识笔记</a> <span class="text-muted">海带土豆</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>第一章:Java基础:1️⃣初识Java:1、常识知识:语言:人与人交流沟通的表达方式计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言编程语言分类:编译型优点:执行效率高缺点:平台依赖重,跨平台不方便解释型优点:易于跨平台缺点:源代码在一般情况下不便于加密,执行效率相对没有那么高混合型:可编译可解释计算机语⾔发展历史第⼀代计算机语⾔:01010100010111000第⼆代汇编语⾔0000</div> </li> <li><a href="/article/1826408352289222656.htm" title="Java基础知识——流" target="_blank">Java基础知识——流</a> <span class="text-muted">NHuan^_^</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>文章目录一、流的概念定义特性惰性执行不存储数据二、流的创建从集合创建从数组创建使用`Stream.of()`方法三、流的操作中间操作示例代码终端操作示例代码四、流的并行处理五、总结一、流的概念定义流是用于操作数据源(如集合、数组等)生成的元素序列的抽象数据结构。流就像花洒一样,通过不同的过滤器和形状来改变数据流的形式和处理方式。特性惰性执行流的中间操作(如filter,map等)不会立即执行,而是</div> </li> <li><a href="/article/1770882642342903808.htm" title="Java基础知识总结(下)" target="_blank">Java基础知识总结(下)</a> <span class="text-muted">Yonagi833</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E7%BB%8Fand%E5%85%AB%E8%82%A1/1.htm">面经and八股</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/1.htm">程序人生</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>本文部分内容节选自JavaGuide,地址:https://javaguide.cn/java/basis/java-basic-questions-03.html基础(上)→基础(中)→基础(下)异常Java异常类层次图概览Exception和Error有什么区别?在Java中,所有的异常都有一个共同的祖先java.lang包中的Throwable类.Throwable类有两个重要的子类:Exc</div> </li> <li><a href="/article/1761942311178166272.htm" title="JAVA基础知识-day08 String类&static关键字&Arrays类" target="_blank">JAVA基础知识-day08 String类&static关键字&Arrays类</a> <span class="text-muted">小陈工</span> <div>一、String类1.1概述:java.lang.String类代表字符串。Java程序中所有的字符串文字(例如"abc")都可以被看作是字符串类的实例。类String包括用于检查各个字符串的方法,比如用于比较字符串,搜索字符串,提取子字符串等方法。1.2特点:1.2.1.字符串不变:字符串的值在创建后不能被更改。1.2.2.因为String对象是不可变的,所以它们可以被共享。1.3创建方法:1.</div> </li> <li><a href="/article/1759921017309982720.htm" title="Java基础知识学习:深入理解Java中的类与对象,Java重要知识点概念性解释,结合实例讲解请看下一篇博文" target="_blank">Java基础知识学习:深入理解Java中的类与对象,Java重要知识点概念性解释,结合实例讲解请看下一篇博文</a> <span class="text-muted">码农超哥同学</span> <a class="tag" taget="_blank" href="/search/Java%E7%BC%96%E7%A8%8B/1.htm">Java编程</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>引言:在Java编程语言中,类(Class)与对象(Object)是面向对象编程(OOP)的核心概念。类可以看作是创建对象的蓝图,而对象则是类的实例。本文将深入解释Java知识体系中的类与对象,帮助读者更好地理解这一基础但至关重要的概念。类的定义与组成类是具有相同属性和行为的一组对象的抽象描述。在Java中,类是通过关键字class来定义的。一个类通常包含以下几部分:属性(成员变量):类的属性定义</div> </li> <li><a href="/article/1759898336351055872.htm" title="SpringBoot学习笔记总结——动力节点" target="_blank">SpringBoot学习笔记总结——动力节点</a> <span class="text-muted">动力节点铁杆粉丝</span> <div>最近跟着动力节点王鹤老师的视频学到了springboot,看过最细的springboot讲解,初学入门最佳,自己做了笔记分享给大家视频资源:https://www.bilibili.com/video/BV1XQ4y1m7ex1.外部资源properties的几种导入方式1.1使用注解直接在实体类上赋值imageimage.gif1.2通过yaml赋值,在实体类中引用@ConfigurationP</div> </li> <li><a href="/article/1759862355572912128.htm" title="Java基础知识" target="_blank">Java基础知识</a> <span class="text-muted">林坰</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/1.htm">基础知识</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%88%9D%E5%AD%A6%E8%80%85/1.htm">初学者</a> <div>一、标识符规范标识符必须以字母(汉字)、下划线、美元符号开头,其他部分可以是字母、下划线、美元符号,数字的任意组合。谨记不能以数字开头。java使用unicode字符集,汉字也可以用该字符集表示。因此汉字也可以用作变量名。关键字不能用作标识符。类名首字母需大写(Welcome)、方法和变量名遵循驼峰原则snRsfService()二、数据类型java的数据类型由8种基本数据类型和多种引用数据类型构</div> </li> <li><a href="/article/1759792401104334848.htm" title="【Java基础知识(1)】对象在内存中的存储" target="_blank">【Java基础知识(1)】对象在内存中的存储</a> <span class="text-muted">不是AI</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Java对象是如何在内存中存储的?在Java中,所有的对象被动态地分配在堆中。这和C++不同,C++允许对象被存储在堆或者栈中。参考Oracle官方文档:官方文档说明在Java中创建字符串对象的2种方法:1、使用String关键字;2、使用new关键字。(1)使用String关键字:使用双引号代表字符串。举例:Stringstr1="GFG";Stringstr2="GFG";该操作在内存中的表示</div> </li> <li><a href="/article/1759626172813111296.htm" title="Java基础知识总结(第六篇):枚举、注解和异常" target="_blank">Java基础知识总结(第六篇):枚举、注解和异常</a> <span class="text-muted">随遇而安622&508</span> <a class="tag" taget="_blank" href="/search/java%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/1.htm">java基础知识</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>声明:1.本文根据韩顺平老师教学视频自行整理,以便记忆2.若有错误不当之处,请指出系列文章目录Java基础知识总结(第一篇):基础语法Java基础知识总结(第二篇):流程控制语句(分支控制和循环控制)Java基础知识总结(第三篇):数组、排序和查找Java基础知识总结(第四篇):面向对象编程基础(类、对象、方法、包以及封装继承多态)Java基础知识总结(第五篇):面向对象编程进阶(代码块,抽象类、</div> </li> <li><a href="/article/1759590803413495808.htm" title="《Android入门到精通》第十八章学习笔记总结" target="_blank">《Android入门到精通》第十八章学习笔记总结</a> <span class="text-muted">✎﹏ℳ๓敬坤</span> <a class="tag" taget="_blank" href="/search/Android%E5%85%A5%E9%97%A8/1.htm">Android入门</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/studio/1.htm">studio</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>博客首页:✎﹏ℳ๓敬坤的博客我只是一个代码的搬运工欢迎来访的读者关注、点赞和收藏有问题可以私信交流文章标题:《Android入门到精通》第十八章学习笔记总结《Android入门到精通》第十八章学习笔记总结Android传感器磁场传感器加速度传感器方向传感器Android传感器什么是Android传感器传感器是一种微型的物理设备,能够探测、感受到外界信号,并按一定规律转换成我们需要的信息Androi</div> </li> <li><a href="/article/1757164633170395136.htm" title="使用Scanner关键字接受键盘录入的数据Java基础知识" target="_blank">使用Scanner关键字接受键盘录入的数据Java基础知识</a> <span class="text-muted">Debug_EDM</span> <div>Java中使用Scanner关键字来录入数据步骤1.导包由于scanner类不在lang包下,需要将其所在的包导入进来importjava.util.Scanner由于我们使用的集成开发工具,此步可以省略快捷键:导包ctrl+shift+o步骤2.直接创建扫描器对象Scannerscanner=newScanner(System.in);步骤3.使用创建好的扫描器录入数据录入的数据也分很多类型,比</div> </li> <li><a href="/article/1756874342559399936.htm" title="Java基础知识点总结" target="_blank">Java基础知识点总结</a> <span class="text-muted">小白不想上班</span> <div>前言本文主要是我之前复习Java基础原理过程中写的Java基础知识点总结。Java的知识点其实非常多,并且有些知识点比较难以理解,有时候我们自以为理解了某些内容,其实可能只是停留在表面上,没有理解其底层实现原理。纸上得来终觉浅,绝知此事要躬行。笔者之前对每部分的内容对做了比较深入的学习以及代码实现,基本上比较全面地讲述了每一个Java基础知识点,当然可能有些遗漏和错误,欢迎读者指正。Java基础知</div> </li> <li><a href="/article/1756644081011802112.htm" title="java基础知识" target="_blank">java基础知识</a> <span class="text-muted">shixiaowei00</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>java基础知识注释注释的概念:注释的内容代码是不会执行的,可以帮助自己和别人看自己写的代码。Java的注释有三种:单行注释://+内容注释一行内容将上面那条代码注释掉后,程序就不会执行那行代码多行注释文档注释(不常用)标识符和关键字关键字关键字是系统本省就起好的名字,往后起名字都不能起关键字。比如给类名起名字就不能取关键字如上:if是一个关键字,但是当它成为类名时系统报错。标识符java所有的组</div> </li> <li><a href="/article/1756550348304039936.htm" title="Maven学习笔记总结" target="_blank">Maven学习笔记总结</a> <span class="text-muted">CV菜鸟#</span> <a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>一、认识MavenMaven是一款基于Java平台的项目管理和整合工具,它将项目的开发和管理过程抽象成一个项目对象模型(POM)。它可以帮助我们自动完成项目的编译、测试、打包、发布以及部署等工作。它能够帮助开发者完成以下任务:1.构建项目2.管理依赖Maven的核心理念:约定优于配置。Maven对项目的目录结构、测试用例命名方式等内容做了规定,凡是使用Maven管理的项目都必须准守这些规则。Mav</div> </li> <li><a href="/article/1756507662515716096.htm" title="linux 常用 shell 指令学习笔记总结" target="_blank">linux 常用 shell 指令学习笔记总结</a> <span class="text-muted">Aliven888</span> <a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a> <div>文档声明:以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。资料仅供学习交流使用。作者:Aliven8881、简介1.1简述shell:是一个程序,他在用户和操作系统提供了一个面向行的可交互接口。用户在命令行中输入命令,运行在后台的shell把命令转化成指令代码发送给操作系统。Shell提供了很多高级特性,使得用户和操作系</div> </li> <li><a href="/article/1756461042394742784.htm" title="学生管理系统(SSM简易版)总结" target="_blank">学生管理系统(SSM简易版)总结</a> <span class="text-muted">沈荣荣</span> <a class="tag" taget="_blank" href="/search/SSM/1.htm">SSM</a> <div>技术准备为了完成这个项目,需要掌握如下技术:Java基础知识前端:HTML,CSS,JAVASCRIPT,JQUERYJ2EE:Tomcat,Servlet,JSP,Filter框架:Spring,SpringMVC,MyBatis,Spring与MyBatis整合,SSM整合数据库:MySQL开发工具:IDEA,Maven开发流程之前虽然已经使用Servlet+JSP完成了简单的开发,这次使用S</div> </li> <li><a href="/article/81.htm" title="java短路运算符和逻辑运算符的区别" target="_blank">java短路运算符和逻辑运算符的区别</a> <span class="text-muted">3213213333332132</span> <a class="tag" taget="_blank" href="/search/java%E5%9F%BA%E7%A1%80/1.htm">java基础</a> <div> /* * 逻辑运算符——不论是什么条件都要执行左右两边代码 * 短路运算符——我认为在底层就是利用物理电路的“并联”和“串联”实现的 * 原理很简单,并联电路代表短路或(||),串联电路代表短路与(&amp;&amp;)。 * * 并联电路两个开关只要有一个开关闭合,电路就会通。 * 类似于短路或(||),只要有其中一个为true(开关闭合)是</div> </li> <li><a href="/article/208.htm" title="Java异常那些不得不说的事" target="_blank">Java异常那些不得不说的事</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/exception/1.htm">exception</a> <div>一、在finally块中做数据回收操作 比如数据库连接都是很宝贵的,所以最好在finally中关闭连接。 JDBCAgent jdbc = new JDBCAgent(); try{ jdbc.excute(&quot;select * from ctp_log&quot;); }catch(SQLException e){ ... }finally{ jdbc.close(); </div> </li> <li><a href="/article/335.htm" title="utf-8与utf-8(无BOM)的区别" target="_blank">utf-8与utf-8(无BOM)的区别</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a> <div>BOM——Byte Order Mark,就是字节序标记 &nbsp; 在UCS 编码中有一个叫做&quot;ZERO WIDTH NO-BREAK SPACE&quot;的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符&quot;ZERO WIDTH NO-BREAK SPACE&quot;。这样如</div> </li> <li><a href="/article/462.htm" title="JAVA Annotation之定义篇" target="_blank">JAVA Annotation之定义篇</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%B3%A8%E8%A7%A3/1.htm">注解</a><a class="tag" taget="_blank" href="/search/annotation/1.htm">annotation</a><a class="tag" taget="_blank" href="/search/%E5%85%A5%E9%97%A8/1.htm">入门</a><a class="tag" taget="_blank" href="/search/%E6%B3%A8%E9%87%8A/1.htm">注释</a> <div>&nbsp; &nbsp; Annotation:&nbsp;译为注释或注解 An annotation, in the Java computer programming language, is a form of syntactic metadata that can be added to Java source code. Classes, methods, variables, pa</div> </li> <li><a href="/article/589.htm" title="tomcat的多域名、虚拟主机配置" target="_blank">tomcat的多域名、虚拟主机配置</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a> <div>众所周知apache可以配置多域名和虚拟主机,而且配置起来比较简单,但是项目用到的是tomcat,配来配去总是不成功。查了些资料才总算可以,下面就跟大家分享下经验。 很多朋友搜索的内容基本是告诉我们这么配置: 在Engine标签下增面积Host标签,如下: &lt;Host name=&quot;www.site1.com&quot; appBase=&quot;webapps&quot;</div> </li> <li><a href="/article/716.htm" title="Linux SSH 错误解析(Capistrano 的cap 访问错误 Permission )" target="_blank">Linux SSH 错误解析(Capistrano 的cap 访问错误 Permission )</a> <span class="text-muted">510888780</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/capistrano/1.htm">capistrano</a> <div> 1.ssh -v hdfs@192.168.18.133 出现 Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). 错误 运行状况如下: OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013 debug1: Reading configuratio</div> </li> <li><a href="/article/843.htm" title="log4j的用法" target="_blank">log4j的用法</a> <span class="text-muted">Harry642</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/log4j/1.htm">log4j</a> <div>一、前言:&nbsp;&nbsp;&nbsp;&nbsp; log4j 是一个开放源码项目,是广泛使用的以Java编写的日志记录包。由于log4j出色的表现,&nbsp;&nbsp;&nbsp;&nbsp; 当时在log4j完成时,log4j开发组织曾建议sun在jdk1.4中用log4j取代jdk1.4 的日志工具类,但当时jdk1.4已接近完成,所以sun拒绝使用log4j,当在java开发中</div> </li> <li><a href="/article/970.htm" title="mysql、sqlserver、oracle分页,java分页统一接口实现" target="_blank">mysql、sqlserver、oracle分页,java分页统一接口实现</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/jave/1.htm">jave</a> <div> 定义:pageStart 起始页,pageEnd 终止页,pageSize页面容量 oracle分页:     select * from ( select mytable.*,rownum&nbsp;num from (实际传的SQL) where&nbsp;rownum&lt;=pageEnd) where num&gt;=pageStart sqlServer分页: &nbsp</div> </li> <li><a href="/article/1097.htm" title="Hessian 简单例子" target="_blank">Hessian 简单例子</a> <span class="text-muted">antlove</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/service/1.htm">service</a><a class="tag" taget="_blank" href="/search/hessian/1.htm">hessian</a> <div>hello.hessian.MyCar.java package hessian.pojo; import java.io.Serializable; public class MyCar implements Serializable { private static final long serialVersionUID = 473690540190845543</div> </li> <li><a href="/article/1224.htm" title="数据库对象的同义词和序列" target="_blank">数据库对象的同义词和序列</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E5%BA%8F%E5%88%97/1.htm">序列</a><a class="tag" taget="_blank" href="/search/%E5%90%8C%E4%B9%89%E8%AF%8D/1.htm">同义词</a><a class="tag" taget="_blank" href="/search/ORACLE%E6%9D%83%E9%99%90/1.htm">ORACLE权限</a> <div>回顾简单的数据库权限等命令; 解锁用户和锁定用户 alter user scott account lock/unlock; //system下查看系统中的用户 select * dba_users; //创建用户名和密码 create user wj identified by wj; identified by //授予连接权和建表权 grant connect to </div> </li> <li><a href="/article/1351.htm" title="使用Powermock和mockito测试静态方法" target="_blank">使用Powermock和mockito测试静态方法</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90/1.htm">持续集成</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a><a class="tag" taget="_blank" href="/search/mockito/1.htm">mockito</a><a class="tag" taget="_blank" href="/search/Powermock/1.htm">Powermock</a> <div>&nbsp; &nbsp; &nbsp; &nbsp; 实例: package com.bijian.study; import static org.junit.Assert.assertEquals; import java.io.IOException; import org.junit.Before; import org.junit.Test; import or</div> </li> <li><a href="/article/1478.htm" title="精通Oracle10编程SQL(6)访问ORACLE" target="_blank">精通Oracle10编程SQL(6)访问ORACLE</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/plsql/1.htm">plsql</a> <div>/* *访问ORACLE */ --检索单行数据 --使用标量变量接收数据 DECLARE v_ename emp.ename%TYPE; v_sal emp.sal%TYPE; BEGIN select ename,sal into v_ename,v_sal from emp where empno=&amp;no; dbms_output.pu</div> </li> <li><a href="/article/1605.htm" title="【Nginx四】Nginx作为HTTP负载均衡服务器" target="_blank">【Nginx四】Nginx作为HTTP负载均衡服务器</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a> <div>&nbsp;Nginx的另一个常用的功能是作为负载均衡服务器。一个典型的web应用系统,通过负载均衡服务器,可以使得应用有多台后端服务器来响应客户端的请求。一个应用配置多台后端服务器,可以带来很多好处: &nbsp; 负载均衡的好处 增加可用资源 增加吞吐量 加快响应速度,降低延时 出错的重试验机制 Nginx主要支持三种均衡算法: round-robin l</div> </li> <li><a href="/article/1732.htm" title="jquery-validation备忘" target="_blank">jquery-validation备忘</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/F%23/1.htm">F#</a><a class="tag" taget="_blank" href="/search/Firebug/1.htm">Firebug</a> <div>留点学习jquery validation总结的代码: &nbsp; function checkForm(){ validator = $(&quot;#commentForm&quot;).validate({// #formId为需要进行验证的表单ID errorElement :&quot;span&quot;,// 使用&quot;div&quot;标签标记错误, 默认:&</div> </li> <li><a href="/article/1859.htm" title="solr限制admin界面访问(端口限制和http授权限制)" target="_blank">solr限制admin界面访问(端口限制和http授权限制)</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/%E9%99%90%E5%AE%9AIp%E8%AE%BF%E9%97%AE/1.htm">限定Ip访问</a> <div>solr的管理界面可以帮助我们做很多事情,但是把solr程序放到公网之后就要限制对admin的访问了。 可以通过tomcat的http基本授权来做限制,也可以通过iptables防火墙来限制。 我们先看如何通过tomcat配置http授权限制。 第一步: 在tomcat的conf/tomcat-users.xml文件中添加管理用户,比如: &lt;userusername=&quot;ad</div> </li> <li><a href="/article/1986.htm" title="多线程-用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1" target="_blank">多线程-用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a> <div> public class IncDecThread { private int j=10; /* * 题目:用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1 * 两个问题: * 1、线程同步--synchronized * 2、线程之间如何共享同一个j变量--内部类 */ public static </div> </li> <li><a href="/article/2113.htm" title="买房历程" target="_blank">买房历程</a> <span class="text-muted">cfyme</span> <div>&nbsp; &nbsp; 2015-06-21: 万科未来城,看房子 &nbsp; 2015-06-26: 办理贷款手续,贷款73万,贷款利率5.65=5.3675 &nbsp; 2015-06-27: 房子首付,签完合同 &nbsp; 2015-06-28,央行宣布降息 0.25,就2天的时间差啊,没赶上。 &nbsp; 首付,老婆找他的小姐妹接了5万,另外几个朋友借了1-</div> </li> <li><a href="/article/2240.htm" title="[军事与科技]制造大型太空战舰的前奏" target="_blank">[军事与科技]制造大型太空战舰的前奏</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E5%88%B6%E9%80%A0/1.htm">制造</a> <div> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 天气热了........空调和电扇要准备好.......... &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最近,世界形势日趋复杂化,战争的阴影开始覆盖全世界.......... &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 所以,我们不得不关</div> </li> <li><a href="/article/2367.htm" title="dateformat" target="_blank">dateformat</a> <span class="text-muted">dai_lm</span> <a class="tag" taget="_blank" href="/search/DateFormat/1.htm">DateFormat</a> <div> &quot;Symbol Meaning Presentation Ex.&quot; &quot;------ ------- ------------ ----&quot; &quot;G era designator (Text) AD&quot; &quot;y year</div> </li> <li><a href="/article/2494.htm" title="Hadoop如何实现关联计算" target="_blank">Hadoop如何实现关联计算</a> <span class="text-muted">datamachine</span> <a class="tag" taget="_blank" href="/search/mapreduce/1.htm">mapreduce</a><a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/%E5%85%B3%E8%81%94%E8%AE%A1%E7%AE%97/1.htm">关联计算</a> <div>&nbsp;&nbsp;&nbsp; 选择Hadoop,低成本和高扩展性是主要原因,但但它的开发效率实在无法让人满意。 &nbsp;&nbsp;&nbsp; 以关联计算为例。 &nbsp;&nbsp;&nbsp; 假设:HDFS上有2个文件,分别是客户信息和订单信息,customerID是它们之间的关联字段。如何进行关联计算,以便将客户名称添加到订单列表中? &nbsp;&nbsp;&nbs</div> </li> <li><a href="/article/2621.htm" title="用户模型中修改用户信息时,密码是如何处理的" target="_blank">用户模型中修改用户信息时,密码是如何处理的</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>当我添加或修改用户记录的时候对于处理确认密码我遇到了一些麻烦,所有我想分享一下我是怎么处理的。 场景是使用的基本的那些(系统自带),你需要有一个数据表(user)并且表中有一个密码字段(password),它使用 sha1、md5或其他加密方式加密用户密码。 面是它的工作流程: 当创建用户的时候密码需要加密并且保存,但当修改用户记录时如果使用同样的场景我们最终就会把用户加密过的密码再次加密,这</div> </li> <li><a href="/article/2748.htm" title="中文 iOS/Mac 开发博客列表" target="_blank">中文 iOS/Mac 开发博客列表</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/Blog/1.htm">Blog</a> <div>&nbsp; 本博客列表会不断更新维护,如果有推荐的博客,请到此处提交博客信息。 本博客列表涉及的文章内容支持&nbsp;定制化Google搜索,特别感谢&nbsp;JeOam&nbsp;提供并帮助更新。 本博客列表也提供同步更新的OPML文件(下载OPML文件),可供导入到例如feedly等第三方定阅工具中,特别感谢&nbsp;lcepy&nbsp;提供自动转换脚本。这里有导入教程。 </div> </li> <li><a href="/article/2875.htm" title="js去除空格,去除左右两端的空格" target="_blank">js去除空格,去除左右两端的空格</a> <span class="text-muted">蕃薯耀</span> <a class="tag" taget="_blank" href="/search/%E5%8E%BB%E9%99%A4%E5%B7%A6%E5%8F%B3%E4%B8%A4%E7%AB%AF%E7%9A%84%E7%A9%BA%E6%A0%BC/1.htm">去除左右两端的空格</a><a class="tag" taget="_blank" href="/search/js%E5%8E%BB%E6%8E%89%E6%89%80%E6%9C%89%E7%A9%BA%E6%A0%BC/1.htm">js去掉所有空格</a><a class="tag" taget="_blank" href="/search/js%E5%8E%BB%E9%99%A4%E7%A9%BA%E6%A0%BC/1.htm">js去除空格</a> <div>js去除空格,去除左右两端的空格 &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&g</div> </li> <li><a href="/article/3002.htm" title="SpringMVC4零配置--web.xml" target="_blank">SpringMVC4零配置--web.xml</a> <span class="text-muted">hanqunfeng</span> <a class="tag" taget="_blank" href="/search/springmvc4/1.htm">springmvc4</a> <div>servlet3.0+规范后,允许servlet,filter,listener不必声明在web.xml中,而是以硬编码的方式存在,实现容器的零配置。 ServletContainerInitializer:启动容器时负责加载相关配置 package javax.servlet; import java.util.Set; public interface ServletContainer</div> </li> <li><a href="/article/3129.htm" title="《开源框架那些事儿21》:巧借力与借巧力" target="_blank">《开源框架那些事儿21》:巧借力与借巧力</a> <span class="text-muted">j2eetop</span> <a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a> <div>同样做前端UI,为什么有人花了一点力气,就可以做好?而有的人费尽全力,仍然错误百出?我们可以先看看几个故事。 故事1:巧借力,乌鸦也可以吃核桃 有一个盛产核桃的村子,每年秋末冬初,成群的乌鸦总会来到这里,到果园里捡拾那些被果农们遗落的核桃。 核桃仁虽然美味,但是外壳那么坚硬,乌鸦怎么才能吃到呢?原来乌鸦先把核桃叼起,然后飞到高高的树枝上,再将核桃摔下去,核桃落到坚硬的地面上,被撞破了,于是,</div> </li> <li><a href="/article/3256.htm" title="JQuery EasyUI 验证扩展" target="_blank">JQuery EasyUI 验证扩展</a> <span class="text-muted">可怜的猫</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/easyui/1.htm">easyui</a><a class="tag" taget="_blank" href="/search/%E9%AA%8C%E8%AF%81/1.htm">验证</a> <div>&nbsp; 最近项目中用到了前端框架-- EasyUI,在做校验的时候会涉及到很多需要自定义的内容,现把常用的验证方式总结出来,留待后用。 &nbsp; 以下内容只需要在公用js中添加即可。 &nbsp; 使用类似于如下: &lt;input class=&quot;easyui-textbox&quot; name=&quot;mobile&quot; id=&quot;mobile&</div> </li> <li><a href="/article/3383.htm" title="架构师之httpurlconnection----------读取和发送(流读取效率通用类)" target="_blank">架构师之httpurlconnection----------读取和发送(流读取效率通用类)</a> <span class="text-muted">nannan408</span> <div>1.前言. &nbsp;&nbsp; 如题. 2.代码. /* * Copyright (c) 2015, S.F. Express Inc. All rights reserved. */ package com.test.test.test.send; import java.io.IOException; import java.io.InputStream</div> </li> <li><a href="/article/3510.htm" title="Jquery性能优化" target="_blank">Jquery性能优化</a> <span class="text-muted">r361251</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a> <div>一、注意定义jQuery变量的时候添加var关键字 这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下: $loading = $('#loading'); //这个是全局定义,不知道哪里位置倒霉引用了相同的变量名,就会郁闷至死的 二、请使用一个var来定义变量 如果你使用多个变量的话,请如下方式定义: . 代码如下: var page </div> </li> <li><a href="/article/3637.htm" title="在eclipse项目中使用maven管理依赖" target="_blank">在eclipse项目中使用maven管理依赖</a> <span class="text-muted">tjj006</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a> <div>概览: 如何导入maven项目至eclipse中 建立自有Maven&nbsp; Java类库服务器 建立符合maven代码库标准的自定义类库 Maven在管理Java类库方面有巨大的优势,像白衣所说就是非常“环保”。 我们平时用IDE开发都是把所需要的类库一股脑的全丢到项目目录下,然后全部添加到ide的构建路径中,如果用了SVN/CVS,这样会很容易就 把</div> </li> <li><a href="/article/3764.htm" title="中国天气网省市级联页面" target="_blank">中国天气网省市级联页面</a> <span class="text-muted">x125858805</span> <a class="tag" taget="_blank" href="/search/%E7%BA%A7%E8%81%94/1.htm">级联</a> <div>1、页面及级联js &lt;%@ page language=&quot;java&quot; import=&quot;java.util.*&quot; pageEncoding=&quot;UTF-8&quot;%&gt; &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt; &l</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>