首页 > 代码库 > JavaSE基础知识
JavaSE基础知识
一:语法基础
java的特点:简单性,面向对象,分布式,安全性,可移植性,高性能,支持多线程
关键字:
数据类型:boolean,byte(1), short(2),char(2),float(4), int(4),double(8), long(8)
类与接口的声明:class,extends,implements,interface
流程控制:if.else,switch,do,while,case,break,continue,return,default,for
异常处理:try,catch,finally,throw,throws,
修饰符:static(无论创建多少对象,程序中仅有一个)abstract,final,private,public,protected,transient,volatile
其他:new,instanceof,this,super,void,assert,enum
运算符:
a++是后自增;++a是先自增;
标识符:
Java合法标识符与c有一点区别,Java标识符由数字,字母和下划线(_),美元符号($)或人民币符号(¥)组成,而且还要求首位不能是数字
二:类与对象
构造方法:在具有继承关系的类中,一定是先调用父类的构造方法,再调用子类的构造方法
普通方法
静态方法:
抽象方法:
方法的重写:
重载:
this引用:不能在main()中使用
super关键字:调用父类的构造方法,不能在main()中使用
抽象类和接口:
1:含有抽象方法的类必须声明为抽象类 2抽象类中不是所有的方法都是抽象方法 3 抽象类的子类必须实现父类所有的抽象方法才能实例化 4 抽象类不能实例化
1:实现接口必须实现接口的所有方法
区别:如果一个抽下该类中所有方法都是抽象的,而且抽象类中的数据成员都是final的常量,那么这个抽象类就是一个接口,
接口中的所有方法都是抽象的,而抽象类可以定义带有方法体的普通方法;接口中的方法默认是public abstract的,而成员变量默认是public static常量。
1 //接口,全部都是抽象方法 2 public interface A(){ 3 int i=1;//等价于public static fianl int i = 1; 4 public void strat();//等价于public abstract void strat(); 5 public void stop();//等价于public abstract void stop(); 6 } 7 //抽象类,并不是所有方法都是抽象方法 8 public abstract B(){ 9 public void strat(){ 10 system.out.println("这是抽象类的一个方法"); 11 } 12 abstract void run(); 13 }
三:JAVA常用类
Object类:
equals()方法:判断两个引用是否指向同一个对象,而“==”用来比较两个对象是否相等,这两个对象可以是基本类型,也可以是引用类型 返回true或false
hashCode()方法:返回对象的散列码值
toString()方法:
包装类:
正则表达式:
四:JAVA语言新特性
枚举:enum
注解:(一个好的程序员一定要会自己写注解)
lamdba表达式:
五:容器与泛型
容器(此部分与数据结构关系密切,不做过多解释)
List list = new ArrayList();//???反过来可以吗?
泛型:
六:异常处理
七:IO流
借用这张图片,更好理解
1:如果是音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点.
2:输入输出对控制台而言,每一个流(字节FileInputStream,FileOutputStream,字符FileReader,FileWriter)对应一个文件
3:操作时一般常用链接流多次对2中的流进行包装
字节流包装缓冲流:BufferInputStream,BufferOutputStream
字符流包装缓冲流:BufferReader,BufferWriter
4:转换流:
通过 InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联 在实际开发中出现的汉字问题实际上都是在字符 流和字节流之间转化不统一而造成的.
八:多线程
创建线程有两种方式:
继承Thread类:用户的线程类只须继承Thread类并重写其run()方法即可,通过调用用户线程类的start()方法即可启动用户线程
1 class MyThread extends Thread{ 2 public void run(){ 3 4 } 5 } 6 7 public class TestThread{ 8 public static void main(String[] args){ 9 MyThread thread = new MyThread();//创建用户线程对象 10 thread.start();//启动用户线程 11 thread.run();//主线程调用用户线程对象的run()方法 12 } 13 }
实现Runnable接口:当使用Thread(Runnable thread)方式创建线程对象时,须为该方法传递一个实现了Runnable接口的对象,这样创建的线程将调用实现Runnable接口的对象的run()方法
1 public class TestThread{ 2 public static void main(String[] args){ 3 Mythread mt = new Mythread(); 4 Thread t = new Thread(mt);//创建用户线程 5 t.start();//启动用户线程 6 } 7 } 8 class Mythread implements Runnable{ 9 public void run(){ 10 11 } 12 }
九:AWT与Swing组件
常用组件:JButton(按钮),JTextField(文本框),JCheckBox(复选框),JRadioButton(单选按钮 ButtonGround.add(JRB)~~~),JList(l列表框)
菜单组件:JMenuBar(菜单条),JPopupMenu(弹出式菜单),JTabbedPane(页签面板),JToolBar(工具栏)
数据管理组件:JTable(表格),JTree(树状视图)
其他:
常见基本操作题:
求最小公倍数与最大公约数
1 public class CommonMultiply{ 2 3 public static void main(String[] args){ 4 5 Scanner input = new Scanner(System.in); 6 int m,n,r,gcd,lcm=0; 7 m=input.nextInt(); 8 n=input.nextInt(); 9 lcm=m*n; 10 while((r=m%n)!=0){ 11 m=n; 12 n=r; 13 } 14 gcd = n; 15 lcm=lcm/gcd; 16 System.out.println("最大公约数:"+gcd); 17 System.out.println("最小公倍数:"+lcm); 18 19 } 20 }
JavaSE基础知识