主题 : JAVA学习经验技巧
级别: 白丁
UID: 80464
积分:1 加为好友
威望: 0 精华: 0
主题:1 回复:0
注册时间:2015-09-23
在线时长:0
1#   发表于:2015-09-23 11:47:12  IP:1.45.*.*
[font=楷体_GB2312]    前段时间逛论坛,总会有很多菜鸟很苍莽,问到:终究该如何学好Java,这个疑问很首要,格外对于像我们这么大多数都是靠自学的人来说,找到一个好的学习办法至关首要!所以乎,我就给我们答复了很多,突然间想到了很久以前,看过的马兵士老师的一篇对于Java自学之路的文章,所以在网上找了找,效果找到了,马兵士老师的视频,是我如今最为推重的Java学习视频,尽管还有很多,如张孝祥、黎活明、李兴华老师等,他们的都极好,自己早年都看过,李兴华老师的基础视频,黎活明老师的EJB,都是经典!但是自己强烈推荐老马的(尽管老马有时讲的实在是太细,连他自己都说之前的80%,都能够遗忘...甚至:接下来的你能够不听...<此处省掉N个字>),为何信赖马兵士老师?
1、马兵士老师有多年的开发阅历,十几个大型项目阅历(baidu百科有介绍)。
2、老马比照诙谐,很多的时分听着都能让人大笑(经典语录:1、豆芽长得再高,它也是颗菜!我想如何吃,就如何吃!2、你是生长在石器时代的人吗?...你是生长在...)。
3、老马的普通话比照标准,听着酣畅,清华的苗子,霸气侧漏!
4、学技术的一同,能学到很多道理。(1、给你一辆自行车,先骑着,再去研讨它的原理。2、三流公司卖产品,二流公司卖效力,一流公司卖标准)
5、老马讲课有一个非常无缺的word文档,上面明晰写了讲课内容,首要程度,而且他会在讲课的过程中明晰哪个是关键,哪个不是关键,这么我们就能够有挑选性的学习。举个比方,比方说讲到spring结构的时分,正本每个结构都希望开发者用自己来完结一切的功用,所以像spring它也供应自己的MVC,也供应包括耐久层、View层的完结,但事实是耐久层和view层我们大多时分会挑选别的的结构来做,如hibernate、ibatis、struts等,所以,对于spring来说,其它方面就不能说成是关键(当然你要悉数学习spring,这些你都应该学好)。不过老师给你讲了解这些后,如何学习,看你了。
当然,这只是我的自己建议,我们能够自己挑选喜欢的老师。
JAVA运用窍门:
1、byte通常用来进行位运算,位宽度窄,通常不必来核算
2、关键词都是小写的,在eclipse中显现为赤色。
3、变量给了缺省的初始值,C言语没给,只给分配了空间,里边的数不确定
4、char的缺省值是ASCII码中第1个
5、运转功率:i++>i+=1>i=i+1
6、布尔值不能进行巨细对比,只能进行==对比
7、先算&&再算||。别的&&为短路与的意思。
例1:判别以下i的改变。
  int i=2,j=3;
  boolean b=i>j && i++>2;
  System.out.println(i);
答案:2
例2:以下在a,b,i不知道的情况下,判别真仍是假。
((a>b)||((3-2)>2))||(5>2)&&(true||(++i>2))
答案:真
8、>>带符号右移,前面移空的方位增加符号位相同的数
 0|001 1000  右移两位(正数)
 0|000 0110
 1|001 1000  右移两位(负数)
 1|111 1100
   >>>带符号右移,前面移空的方位增加0
9、取得-5到2的随机数  
  int i;
  Random r=new Random();
  i=r.nextInt();
  //  i=Math.abs(i%10)+1;//取得0到10的随机数
  i=Math.abs(i%8)-5;//取得-5到-2的随机数
  System.out.println(i);  
10、数组创立时,巨细(内存)可所以前面的变量.能够动态创立数组的巨细(内存),创立后就不能再改巨细.
例:
  int t=9;
  int[][] jiu;
  jiu=new int[t][];
11、变量的效果域。
界说的数个变量其实是放在一个栈的结构中,后界说的变量先不见,先界说的变量后不见,效果域比后界说的变量大。
12、.根本数据类型参数的传递是值传递,
  引证....................址传递.
class Length{
 int length;
}
class People{
 void walk(Length length){
  length.length=+=2;
 }
 public satic void main(String[] args){
  Length l=new Length();
  l.length=20;
  new People().walk(l);
  System.out.println(l.length);
 }
}
13、办法的重载,不能经过返回值类型不同来差异,只能经过参数的不同来差异.
14、办法或变量加static和
不加static的办法,是类的目标的办法.目标不见,办法不见
    加static的办法,是类的办法.目标不见,办法存在.办法的地址是静态的与类绑定
  变量和上面也相同.
15、静态办法,只能拜访类的静态成员和该办法的成员
 
16、JAVA不支撑多重承继,相似一个树,一个类只要一个父类,但能够有多个接口
  C++支撑多重承继,相似一个网,一个类能够有多个父类
17、子类默许调用了父类无参结构函数.假如父类没有无参结构函数,有必要手动重写子类的结构办法,并用super(参数)调用父类中有参结构的办法.   海淘购物一定要选正规平台,海外购物平台欧莱名品http://www.eulike.com/拥有7年海淘购物服务经验、专业的购物团队,支持网站直接注册下单和淘宝下单,安全、方便、放心海淘!
例:
class People{
 private int age;
 public People(int age){
  this.age=age;
 }
}
class Doctor extends People{
 //不写以下结构办规律犯错.
 public Doctor(){
  super(23);
 }
 //或许
 public Doctor(int age){
  super(age);
 }
}
解决办法:在写类的有参结构办法时,最佳界说个无参的结构办法.
18、结构办法调用父类的结构办法super()前不能有别的的句子.
19、final能够润饰形式参数,避免被改
例: 
 void walk(final int length){
  
 }
20、import导入包的了解,主要的工作总要放到前面
21、private与abstract抵触,缘由:子类完成(承继)不了接口(抽象类)中被private润饰的成员,但接口(抽象类)中的办法有必要要重写,加private就没办法重写了
例:
interface InterfaceTest {
 int f();
 private abstract int ff();//此句过错,要去掉private
}
22、内部类能够被外部运用,能够拜访外部类(宿主类)的privite成员;内部类成员加public也能够被外部拜访,但也风险,界说成private外部不能拜访此类了(常用).
public class OutClass {
 private int i=2;
 public class InnerClass{
  public int j=i;
 }
}
23、抽象类不必承继也能用
例:
abstract class Out2{
 private int i=2;
 public abstract int f();
 public static Out2 getInstance(){
  return new Inner2();
 }
 private static class Inner2 extends Out2{//static
  public int f(){
   return 2;
  }
 }
 public static void main(String[] args) {
  Out2 ou=Out2.getInstance();//抽象类不必承继也能用,取得此类的实例
  int i=ou.f();
  System.out.println(i);
 }
}
24、接口里也能够界说类(内隐类)
例:
interface InterfaceTest {
 int f();
 class A{
  int f(){
   return 2;
  }
 }
}

25、内部类的运用.类NoNameInnerClass 不必implements完成接口,而用传递进来目标来用接口
interface Inter{
 void paint();
}
public class NoNameInnerClass {
 public void paint(Inter p){//传递进来目标来用接口
  p.paint();
 }
 public void func(){
  //为了取得目标,界说一个内部类,把此目标做参数
  class Paint implements Inter{
   public void paint(){
    System.out.println("paint.");
   }
  }
  Paint p=new Paint();
  paint(p);
 }
}
26、内部类的运用.不必类名,直接创立目标,无名内隐类,类名是他完成的接口姓名
interface Inter{
 void paint();
}
public class NoNameInnerClass {
 public void paint(Inter p){//传递进来目标来用接口
  p.paint();
 }
 public void func(){
  //直接创立目标,无名内隐类,类名是他完成的接口姓名,
  paint(new Inter(){
   public void paint(){
    
   }
  });
 }
}

27、单态规划形式。能够创立类的仅有实例。把结构办法界说成private,再创立静态的成员办法getInstance()取得此类仅有实例.
例1.
public class ChineseTest{
    public static void main(String[] args) {
        Chinese Obj1 = Chinese.getInstance();
        Chinese Obj2 = Chinese.getInstance();
        System.out.println(Obj1 == Obj2);
    }
}
class Chinese {
    private static Chinese objRef = new Chinese();
    private Chinese() {
    }
    public static Chinese getInstance(){
        return objRef;
    }
}
例2:
public class ChineseTest{
    public static void main(String[] args) {
        Chinese Obj1 = Chinese.getInstance();
        Chinese Obj2 = Chinese.getInstance();
        System.out.println(Obj1 == Obj2);
    }
}
class Chinese {
    private static Chinese objRef ;
    private Chinese() {
    }
}
28、泛型使用
Vector类后的E代表泛型,用来约束往里边放的数据类型
例:
  Vectorv=new Vector();
  v.add("aaa");
  v.add("bbb");
  System.out.println(v.get(0));

29、假如一个办法可能有反常,则用throw new Exception("")来抛出反常
  假如办法内用throw抛出反常,则此办法头后有必要用throws(多个s)声明可能会抛出反常。
  假如一个办法头后用throws声明可能会抛出反常,则此办法在用的时分有必要用try-catch句子
例:
public class Lx_Yichang {
 static int div(int x,int y)throws Exception{
  if(y==0){
   throw new Exception("除数不能为0!!!");//办法内用throw抛出反常
  }else{
   return x/y;
  }
 }
 public static void main(String[] args) {
  try{//用try-catch句子
   int z=0;
   z=Lx_Yichang.div(10, 0);
   System.out.println(z);
  }
  catch(Exception ex){
   System.out.println(ex.toString());
   ex.printStackTrace();
  }
  finally{
   System.out.println("End!");
  }
 }
}
30、Hashtable类使用,能够经过get(键)或get(hashCode)来取得值内容。
import java.util.Hashtable;
class PhoneList{
 String name;
 String phoneNumber;
 public PhoneList(String name,String phoneNumber){
  this.name=name;
  this.phoneNumber=phoneNumber;
 }
}
public class HashtableTest {
 public static void main(String[] args) {
  //使用泛型
  Hashtable hashTable=new Hashtable();
  hashTable.put("wang0",new PhoneList("wang","0000000"));
  hashTable.put("wang1",new PhoneList("wang","1111111"));
  hashTable.put("wang2",new PhoneList("wang","2222222"));
  hashTable.put("wang3",new PhoneList("wang","3333333"));
  System.out.println(hashTable.get("wang2").phoneNumber);
  
  //不使用泛型
  Hashtable hash=new Hashtable();
  hash.put("wang0",new PhoneList("wang","0000000"));
  hash.put("wang1",new PhoneList("wang","1111111"));
  hash.put("wang2",new PhoneList("wang","2222222"));
  hash.put("wang3",new PhoneList("wang","3333333"));
  //System.out.println(((PhoneList)hash.get("wang2")).phoneNumber);//不必泛型,需求强行类型变换
  //强行类型变换时,最佳先进行类型判别
  Object o=hash.get("wang2");
  if(o instanceof PhoneList){
   System.out.println(((PhoneList)o).phoneNumber);
  }
  
  //使用hashcode  
  Hashtable table=new Hashtable();
  PhoneList p1=new PhoneList("wang2","888888888888");
  table.put(new Integer(p1.hashCode()), p1);
  System.out.println(table.get(new Integer(p1.hashCode())).phoneNumber);  
 }
}
31、供给一个对于**的简略描绘,页面,**称号,供给商,金钱初始值等等。这些数据能够置于.jad文件中。  打包后是放在JAR的META-INF文件夹里。 用MIDlet类的getAppProperty(String key)来取得其间的值. 

32、Canvas 的hideNotify() 里写暂停的代码。showNotify() 写持续**的代码。
来电话时主动调用hideNotify() 。 pauseApp也能够完成,但有的手机不支撑如Nokia手机
34、运转提示ALERT: java/lang/ClassFormatError: Bad version information.缘由
  缘由:当时编译器的版别过高。
  解决办法: 编译器的版别不要过高不然有的手机不认,挑选编译器办法:点项目右键特点->Java Compiler-> Enable project specific settings打勾,然后挑选版别较低的编译器
35、把一切的引证都设置为null才能够变为废物
  Hero h=new Hero();
  Hero h2=h;
  h=null;//此刻,h并没变为废物,由于还有h2指向它,需求把h2也设置为null,h才变为废物
  h2=null;
36、去掉无用包(ctrl+shift+0).或右键->Source->Organize Imports
37、WTK2.5的装置后,ECLIPSE的设置
Window->Preferences->Device Management->Import->找到WTK的装置途径
38、增加资本文件夹名
在项目上右键->Properties->双击Java Build Path->点Add Foler->鄙人面的选项中挑选update exclusion filters in other source folders to solve nesting,再添入资本文件夹名,如src、res等。
39、增加抽象类、接口中的办法。
例如对承继Canvas类,需求增加protected void keyPressed(int keyCode){}办法时.
在代码上右键->Source->挑选Override/Implements Methods->在窗口中,对要重写的办法打勾->Ok。
40、在for句子中,第2个循环条件能够和逻辑表达试取与
例:
 for(int i=0; i<100 && i%2==0;i++)
41、DataInputStream包装FileInputStream后,底层操作文件,上层按指定格局输出(最易运用)
42、FileInputStream的使用
例:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class PekingFileInputStreamTest1 {
 public static void main(String[] args) {
  try {
   //在项目根目录里创立文件fileInputStream.txt
   File file=new File("fileInputStream.txt");
   FileOutputStream fout=new FileOutputStream(file);
   fout.write(65);
   fout.close();//输出到文件结束后封闭
   //开端读
   FileInputStream fin=new FileInputStream("fileInputStream.txt");
   int b=fin.read();
   System.out.println(b);
   fin.close();  
  } catch (Exception e) {
   // TODO: handle exception
   e.printStackTrace();
  }
 }
}
43、使用DataOutputStream包装FileInputStream按指定格局输出
例:
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileInputStream;
public class PekingFileInputStreamTest2 {
 public static void main(String[] args) {
  try {
   //在项目根目录里创立文件fileInputStream.txt
   File file=new File("fileInputStream.txt");
   FileOutputStream fout=new FileOutputStream(file);
   //包装下按指定格局输出
   DataOutputStream dout=new DataOutputStream(fout);//子类fout做参数传给父类,子类当父类用
   dout.writeInt(8793);
   dout.writeUTF("感动我国");
   dout.close();
   fout.close();
   
   //开端读
   FileInputStream fin=new FileInputStream("fileInputStream.txt");
   DataInputStream din=new DataInputStream(fin);
   int b=din.readInt();
   String s=din.readUTF();
   System.out.println(b);
   System.out.println(s);
   din.close();
   fin.close();  
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
}
44、使用PrintWriter包装三次的比如。
PrintWriter包装OutputStreamWriter,OutputStreamWriter包装FileOutputStream,FileOutputStream包装File
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class PekingFileInputStreamTest3 {
 public static void main(String[] args) {
  try {
   //在项目根目录里创立文件fileInputStream.txt
   File file=new File("fileInputStream.txt");
//   FileOutputStream fout=new FileOutputStream(file);   
//   OutputStreamWriter osw=new OutputStreamWriter(fout);//测验字符流//字符流通向字节省的桥梁
//   PrintWriter pw=new PrintWriter(osw);//包装三次
   PrintWriter pw=new PrintWriter(new OutputStreamWriter(new FileOutputStream(file)));
   //开端读
   pw.println("窗前名月光,");
   pw.println("疑是地上霜.");
   pw.println("昂首望明月,");
   pw.println("垂头思故土。");
   pw.flush();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
}[/font]
欧莱名品海淘代购http://www.eulike.com/
级别: 商业授权用户
UID: 69083
积分:478 加为好友
威望: 0 精华: 0
主题:67 回复:346
注册时间:2014-11-05
在线时长:0
2#   发表于:2015-09-28 09:35:02  IP:60.52.*.*
顶一个
级别: 商业授权用户
UID: 69083
积分:478 加为好友
威望: 0 精华: 0
主题:67 回复:346
注册时间:2014-11-05
在线时长:0
3#   发表于:2015-09-28 09:44:35  IP:60.52.*.*
你需要设置个回复能看,才有回复#哈哈#(怎么没有表情)
1 共1页