JAVA基础

1.基本结构:
public static void main(String[] args) {
权限修饰符、静态修饰符 返回值类型 方法名 参数
}
2.fload类必须加上F、f否则编译器会当成double
3.final常量,可以先定义在赋值,但只能赋值一次
4.static
static方法:不依赖于任何对象就可以访问,故没有this操作,静态方法中不可访问非静态方法和变量,反之可以。
补充:当然也可以将某个类的实例对象,然后通过该实例对象调用非静态方法
static变量:不可修饰局部变量,同样不需要依托于对象(与C语言不同,static不可限制权限),两个对象对同一个静态成员变量操作,将会操作内存中的同一个地址
5.String:
字符串常用方法:indexOf()该字符串第一次出现的位置
lastIndexOf()该字符串第一次出现的位置
charAt()指定位置的字符
subString(1,3)截取字符串
trim()去除前导空格和尾部空格
replace(”A”,”B")替换字符串
startsWith()endsWith()是否是这个前缀或者后缀
compareTo()按照字典顺序比较两个字符串,基于Unicode值
例:
String str1 = "test11";
String str2 = "test22";
str2.compareTo(str1)返回“1”,相反“-1”,相同则“0”
split(”,”,3)按照指定字符和次数限制分割字符串
equals()对比两个对象(必须是地址和内容全部相同)
例:String s1 = new String("jianghong");
String s3 = new String("jianghong");
String s2 = "jianghong";
String s4 = "jianghong";
那么s2=s4,s1!=s3.解释:new 出来的对象会调用String的构造函数,同时在堆里和对象池里各创建一个对象。但直接赋值会首先在对象池查找是否有相同的字符串,有的话则将地址指向这个字符。
例:
String a = "1";
String b = "2";
String c = "12";
String d = "1"+"2";
String e = a+b;
如果 final a final b 那么c和e‘是否相等
c = d ,c != e ,c=e'
解释:取决于在编译期间是否能知道它实际的内容。

6.数组:java.util.Arrays
排序:Arrays.sort(arr)
搜索:Arrays.binarySearch(arr,0,2,5);
冒泡排序、选择排序、反转排序(有序)
7.类
extends 继承与某个类

     class SubClass extends SuperClass{
     //构造方法调用父类构造方法
     public Subclass(String name){
     super (name)
     }
}
implement 实现某个接口(interface支持被继承,类中支持多接口实现)

//定义了一个接口Flyer

interface Flyer
{
    void fly ();
    int ID = 1;
}
public class Animal extends Person implements Flyer,Runner{
    @Override
    public void fly() {
    }
    int j = Flyer.ID;
}
 构造方法的调用顺序为先顶级再父类再自身

8.权限修饰符 java

| 包位置 |private|protected|public
| -------------|-------------| -----|
| 本类 |可见 | 不可见| 不可见 |
| 同包其他类或子类 |不可见 | 可见 | 可见 |
| 其它包的类或者子类 | 不可见 | 不可见 | 可见 |

类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私有
9.java内存回收(对象的销毁)当超出作用范围或者被赋为null的时候。不足之处为只能回收由new创建的对象,那么就要写方法finalize(),调用这个方法,手动将对象销毁(null)。但是当Java内存爆炸用完的时候

10.关于计算机编码基础
原码:
如果机器字长为n,那么一个数的原码就是用一个n位的二进制数,其中最高位为符号位:正数为0,负数为1。剩下的n-1位表示概数的绝对值。
例如: X=+101011 , [X]原= 00101011 X=-101011 , [X]原= 10101011
位数不够的用0补全。
PS:正数的原、反、补码都一样:0的原码跟反码都有两个,因为这里0被分为+0和-0。
反码:
反码就是在原码的基础上,符号位不变其他位按位取反(就是0变1,1变0)就可以了。
例如:X=-101011 , [X]原= 10101011 ,[X]反=11010100
补码:
补码也非常的简单就是在反码的基础上按照正常的加法运算加1。
例如:X=-101011 , [X]原= 10101011 ,[X]反=11010100,[X]补=11010101
PS:0的补码是唯一的,如果机器字长为8那么[0]补=00000000。
移码:
移码最简单了,不管正负数,只要将其补码的符号位取反即可。
例如:X=-101011 , [X]原= 10101011 ,[X]反=11010100,[X]补=11010101,[X]移=01010101

11.对象类型转型

     向上转型:SuperClass super = new SubClass();即,将子类的对象赋值给父类。
例:假设SuperClass有个方法test(SuperClass class),这样如果根据子类对象的不同在父类的方法中,进行不同的处理,这就是多态的思想。
     向下转型:将父类对象赋值给子类,可能会出现对象成员的错误,需要使用显示类型转换(SuperClass)
     instanceof:判断某个对象是否为某一个类的一个实例

12.抽象类:使用abstract修饰,抽象类不能拥有实例化的对象,但可以通过继承和多态实现方法。抽象方法本身没有方法体,没有实际意义

13.java 中使用import可以指定某个包中的所有类,如:import com.test.jianghong.*,import不仅能导入类,也可以导入静态成员,如import:static java.lang.Math.max;

14.集合类 map、list、set
迭代器iterator(),

Collection<String> list =new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
Iterator <String> it  = list.iterator();
while (it.hasNext()){
    System.out.println(it.next());
}
    ```
15.I/O输入输出
     所有输入流类都是抽象类InoutStream或Reader的子类。所有输出都是OutputStream或Writer的子类
     InputStream是用来处理字节的,不适合处理字符文本(字符采用Unicode编码,双字节),而Reader则能处理字符流

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class StandardInputOutput {
public static void main(String args[]) {
String s;
// 创建缓冲区阅读器从键盘逐行读入数据
InputStreamReader ir = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(ir);
System.out.println("Unix系统: ctrl-d 或 ctrl-c 退出"
+ "\nWindows系统: ctrl-z 退出");
try {
// 读一行数据,并标准输出至显示器
s = in.readLine();
// readLine()方法运行时若发生I/O错误,将抛出IOException异常
while (s != null) {
System.out.println("Read: " + s);
s = in.readLine();
}
// 关闭缓冲阅读器
in.close();
} catch (IOException e) { // Catch any IO exceptions.
e.printStackTrace();
}
}
}

16.class类与java的反射
     通过getClass、getMethods等可以返回java对象的描述信息。如果去类名,类的构造方法,类中的成员等

17.Java中的枚举类enum,该类可定义枚举常量,也可以自定构造方法定义带参数的枚举类型成员

enum Constants2{
Constants_A("test1"),Constants_B("test2");
private String description;
private Constants2(String description){
this.description = description;

};
private String getDescription(){
    return description;
}

}
public static void main (String []args ){
for (int i = 0; i <Constants2.values().length ; i++) {
out.println("枚举成员变量" + Constants2.values()[i]+"输入" + Constants2.values()[i].getDescription());

}

}
补充:枚举类也可以实现接口
interface d {
public String getDescription();
}
public enum Constant3 implements d{
Constants_A{
public String getDescription(){
return ("test3");
}
}
}

18.泛型类,使用格式为Class<T>,这个类不规定自身类型,在使用的时候自动转化为需要的类型

public class Tclass <T>{
private T[] array;

public void SetT(T[] array){
    this.array = array;
}
public T[] getT(){
    return array;
}

public static void main(String[] args) {
    Tclass <String >tClass = new Tclass<String >();
    String[] array = {"var1","var2","var3"};
    tClass.SetT(array);
    for (String a: tClass.getT()
         ) {
        System.out.println("数组泛型类 "+a);
    }
    //通配符?先不确定类型,在实际使用的时候再确定类型
    Tclass<? extends List> a = null;
    a = new Tclass<ArrayList>();
    a = new Tclass<LinkedList>();

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 198,932评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,554评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 145,894评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,442评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,347评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,899评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,325评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,980评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,196评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,163评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,085评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,826评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,389评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,501评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,753评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,171评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,616评论 2 339

推荐阅读更多精彩内容

  • 在编写程序的过程中,不了避免的要用到字符串,所以String类的常用方法的用法是必须掌握的。学习一个类的使用方法最...
    Geg_Wuz阅读 1,234评论 0 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,524评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,546评论 18 139
  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 1,584评论 4 12
  • 《紅樓夢》第六十五回,賈璉在外偷娶尤二姐,枕邊恩愛奉承嬌妻,言,只待她(王熙鳳)一死,便接妳進去。蔣勳老師嘆...
    Xuanmany小牡羊阅读 231评论 0 0