java基础

来源:互联网 发布:nginx 全局变量 编辑:程序博客网 时间:2024/06/01 08:48
//作者:粟德华
//功能:在控制台显示"java,i am coming
//日期:2015.3.14


//First:类名,与文件名相同。
public class First{
//一个主函数,相当于是程序的入口
public static void main(String argc[])
{
//执行语句
System.out.println("java,i am coming");
int a=10;//定义一个变量,名字为a,值为10
int b=20;
}
}


第二讲:
java基本数据类型:整数类型,(分为byte(1个字节=8个bit,-128(-2的8-1次方)127(2的七次方-1).因为1000000转化为-128),short,int,long(8个字节))
 小数(浮点)类型,(float,double)
布尔类型
 字符类型
第三讲:
System.out.println()会输出换行,System.out.print()不会换行
多分支找到一个入口就不会执行下去了。
包的例子~importjava.io.*;
//输入流,从键盘接受数
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
//给出提示
System.out.println("输入第一个数");
String a1=br.readLine();
float num1=Float.parseFloat(a1);//parseFloat为转化函数




Scanner sc=new Scanner(System.in);  //需要引入java.util包   
String str=sc.nextLine();
int s=sc.nextInt();




第四讲:
switch语句 1.条件表达式数据类型应该和case后的常量类型一样。
2.swutch中可用的数据类型主要是byte,short,int,char,enum.


do_while语句    先执行一次,再判断。








第七讲:两个函数如果只是返回类型不同,是错误的。




第八讲:this可表示类的名字 this.age=age;
在某个类中应用一个对象时,访问该对象所在类的方法时。可用该类。对象名。方法
静态变量(static int age);可以被该类的全部对象访问。


第九讲:类(静态)变量:所以对象共享的变量,任何一个该类的对象去访问时,取得都是相同的值
同样任何一个变量修改的也是同一个值。
定义类变量: 访问修饰符 static 数据类型 变量名;
类变量原则上用类方法去访问和操作,类方法中不能访问非静态变量


封装:把抽象出来的数据和数据操作封装在一起,数据保护在内部。
只有通过成员方法才能对数据进行操作。

四种修饰符:1.public   公开
   2.protected  对子类和同一个包的类公开
   3.默认:    只对同一个包中的类公开
   4.private: 只对类本身开放
包的作用:1.区分相同名字的类。2.可以很好管理类3.控制访问范围




第十讲:
继承: 解决代码互用,让编程更加接近人类思维。(private,final修饰的东西不能被继承)

继承注意事项:1.只能继承一个父类
2.java所有类都是object的子类
3.JDK6中包含202个包3777个类,借口,异常,枚举等
4.在做开放的时候,强烈建议大家多查JDK帮助文档
5.不会再问谷歌


方法重载注意事项:1.方法名相同
2.方法的参数类型,个数,顺序至少有一项不同
3.方法只是返回类型不同,不构成重载


第十一讲: 方法重写注意事项:子类不能缩小父类方法的访问权限




第十二讲:  多态:指通过指向父类的指针,来调用不同子类实现的方法.


第十三讲: 抽象类:当父类的一些方法不确定会使用时,就定义为抽象类。
当方法为抽象时,该方法所在的类也应该定义为抽象类。

  当一个类继承的父类是抽象类的话,需要我们把抽象类的所有抽象方法全部实现





抽象类注意事项:1.抽象类不能实例化。
2.抽象类不一定包含抽象方法
3.抽象方法不能含有主体。
4.有抽象方法的类必须定义为抽象类


接口:类里的所有方法都是抽象的。
一个重要原则:当一个类实现接口时,要实现该接口的所有方法。
接口里面的变量不可以用protected,private 修饰。
接口中的变量,本质上是final,static的。
在java开发中,我们经常把要经常用的变量放在接口中。当全局变量使用


第十四讲:  前期绑定:在编译时就已经知道
   后期绑定:在运行时才知道。
如果一个变量为final修饰,则必须赋初值。


第十六讲:数组定义: 数据类型 数组名【】=new 数组类型【大小】;
    int【】 a==int a[];
 求数组大小:可用数组名。length;
 
当使用对象数组时,每个数组的引用时逗必须再实例化一次
如: Dog arr[]==new Dog[4];
arr[0]=new Dog();这样后才可以使用arr[0]访问方法


第十七讲:
排序:1.内部排序(1.交换式排序(冒泡,快排)冒泡(数组多长就排多少次),相邻两个元素比较,大的往后移
2..快排:从中分为两半。两边一直排。实行递归。


2.选择时排序法:(选择排序法:从数组中选最小数跟第一个交换,然后继续与第二个交换)
3.插入式排序法:(插入排序法:从无序表中一个个选数到有序表中,




Calender每打印一次时间就必须实例化一次。


第十九讲: 二维数组定义: 类型 数组名【】 【】=new 类型【】【】;
  


第二十讲:  有符号:正数的原码,反码,补码都一样
    负数的反码=它的原码符合不变,其它位取反,补码=它的反码+1;
0的 反码,补码都是0.
java所有的数都是有符合的、
计算机中都是以 补码 来运算的。 


异或:  两个不相同时才为1.
取反时符合位会变,其它的运算符合位不变。


算术右移:低位溢出,符合位不变,并用符号位补溢出的高位。
算术左移:符合位不变,低位补0;
逻辑右移:符合位不变,高位补0  >>>




第二十一讲:集合类可以放入一个相同对象两次
List( LinkedList集合类与ArrayList不同点:1.增加了可直接添加到前面的方法。addFirst
  2.增加了addLast。
Vector集合类,栈Stack)

Map(HashMap 特点:无需遍历即可查找,取出。但是不能同时放入同一个编号。会覆盖)


HashMap与Hashtable区别:1.历史原因
2.table是同步的
3.Hashtable不能放入空值。
ArrayList和Vector区别:1.Vector是同步的,更安全。
2.数据增长。Vector缺省情况下自动增长原来的两倍,ArrayList为原来的一半
第二十五讲:泛型优点:解决类型转换错误,提高代码重用率。类型安全。
   
   通过反馈机制可以得到一个类的很多信息。

    用文件的类就必须调入io.*包。
tracert 用于访问路由器
访问某网站 Socket s=new Socket();
    异常处理:1.try catch,finally..e.printStackTrace输出异常信息
finally:不管有木有异常,都会执行,一般用来关闭未关闭的东西。


    finally不会执行的情况:1.系统已退出
2.finally块发生了异常
3.线程错误
第二十九讲:图形界面:组件在容器中的位置和大小是由布局管理器来决定的。
边界布局BorderLayout注意事项:1.不是五个部分都必须添加
2.中部组件会自动调节大小
3.JFrame和JDialog默认布局管理器是BorderLayout


FlowLayout:默认为居中对齐。可设置this.setLayout(new FlowLayout(FlowLayout.LEFT));
   2.不限制他所管理的组件大小,允许有最佳大小
网格类:组件会随窗体的大小改变,
所有组件的大小是相同的。


第三十一讲:1.文本框(JTextField)
2.密码框(JPasswordField)
3.标签(JLable)
4.单选框组件(JRadioButton)
5.复选框组件(JCheckBox)
6.下拉表组件(JComboBox)
7.列表框组件(JList)
8.滚动窗格组件(JScrollPane);一般和7联合使用
9.拆分窗格 JSplitPane
10.多行文本框组件。JTextArea
11.选项卡窗格JTabbedPane
12.菜单组件JMenuBar树干,JMenu树枝,JMenuItem树叶,
13.二级菜单制作JMenu;
14.工具条组件ToolBar


说明:同一组单选按钮必须先创建ButtonGroup,然后把单选框组件放入到ButtonGroup中


第三十二讲:坦克大战开始
两个绘图相关最重要的方法:1.paint(Graphics g)绘制组件的外观
 2.repaint()刷新组件的外观
当组件第一次在屏幕显示的时候,程序会自动调用paint()方法来绘制组件
窗口大小发生变化时,repaint函数被调用时,paint都会被调用


Graphics类绘制图形方法:1.画直线 drawLine(int x,int y,int x1,int y2)
2.画矩形 drawRect(int x,int y,int width,int height)
3.画椭圆边框 drawOval(int x,int y,int width,int height)
4.填充矩形fillRect(int x,int y,int width,int height)
5.填充椭圆 fillOval(int x,int y,int width,int height)
6.画图片 drawImage(Image img,int x,int y)
7.画字符串 drawString(String str,int x,int y);
8.设置画笔的字体 setFont(Font font);
9.设置画笔的颜色 setColor(Color c)
10.画弧形 drawArc(int x1,int y1,int width,int height,int x2,int x3)
最后两个参数表示往左或者往右弧度
第三十七讲:  事件编程步骤:1.编写事件监听类,
2.根据需求给事件处理实现监听器接口
3.在事件处理类中重写其事件处理的函数
4.在事件源中指定该事件是谁,即注册监听
第三十八讲:线程    进程是指运行中的应用程序
    线程是进程中的一个实体,线程没有独立的地址空间。


不会用线程别说自己会JAVA。
线程状态:1.新建状态,2.就绪状态(检查资源准备) 3.运行状态 4.阻塞状态  5.死亡状态
线程实现方法:1.继承Thread类,并重写run函数   用对象.start调用
     2.实现Runnable借口,并重写run函数  需要先创一个线程对象


以后编程习惯:尽可能使用Runnable来实现进程、


第四十讲:线程注意事项
1.线程不可以启动两次。如Cat ca1=new Cat();cat1.start(),cat1.start()
解决同步的方法:在需要同步的代码前加synchronized(objec t)


对象锁,文件锁。
第四十二讲:如果一个类的坐标会移动,那么就把它定义为线程类


第四十三讲:java流分为两种 
1.字节流:可以用于读写二进制文件及任何类型文件
2.字符流:可以用于读写文本文件,不能。操作二进制文件
字节流  输入流 InputStream 输出流 OutputStream
字符流  输入流 Reader  输出流 Writer




javac常用快捷键
shift+alt+s   get,set构造方法
ctrl+shift+o  导入包
ctrl+shift+f  对齐
alt+shift+q   显示透视图
alt+shift+r   一键改名
0 0