Java基础语法

引言

大家应该都知道,写Java程序首先应该配置环境变量,然后建立包和类,才能去写Java程序,本文就不去介绍如何做这些东西了。直接介绍Java语言的一些基本语法。

第一行代码

可以这么说,所有的程序语言的第一行代码都是“Hello + 语言”,拿Java来举例子,Java的第一行代码就是“Hello Java”。

下面附上代码:

public class HelloJava{
    static String s1="你好";
    public static void main(String [] args){

        //第一行代码
        String word = "Hello Java!";
        System.out.println(word);
       }
}

for循环

循环语法在C语言里面介绍得很清楚,很详细,在Java里面和C差不多。
在这里要重点介绍一下foreach语句,foreach语句是for语句的特殊简化版本,不能完全取代for语句,但是任何foreach语句都可以改写成for语句。

foreach语句
int arr[] = {7,10,1};     /声明一维数组
        System.out.println("一维数组中的元素分别为:");
        for(int x: arr){
            /foreach语句,int x 引用的变量,arr指定要循环遍历数组,最后将x输出
            System.out.println(x);
        }
for语句
 for(int i=0;i<=100;i++)    //  for循环
        {
            System.out.println(i);
            if(i==6)
                break;
        }

String的各种骚操作

String真的是太牛逼了,不管是在Java还是在c++里面都真的是太秀了,陈独秀都比不过。不多说,直接上代码!!!! 对这种大佬,只能膜拜。。不敢多说!!

String s5 = new String("qinjiahao");     //定义String类型的字符
        String s4 = new String("is so stupid!");
        String s = s5 + " " + s4;
        System.out.println(s);

        //    //   字符串的替换   replace的应用
        String str = "address";
        String newstr = str.replace("a","A");   //
        System.out.println(newstr);

        /    判断字符串的开始与结尾    startsWith的应用
        /*String num1 = "22045612";
        String num2 = "21304578";
        boolean b = num1.startsWith("22");
        boolean b2 = num1.endsWith("78");
        boolean b3 = num2.startsWith("22");
        boolean b4 = num2.endsWith("78");
        System.out.println("字符串num1是以‘22’开始的吗?" + b);
        System.out.println("字符串num1是以‘78’结束的吗?" + b2);
        System.out.println("字符串num2是以‘22’开始的吗?" + b3);
        System.out.println("字符串num2是以‘78’结束的吗?" + b4);*/

        判断字符串是否相等  equals的应用
        String s1 = new String ("abc");
        String s2 = new String("ABC");
        String s3 = new String("abc");
        boolean b = s1.equals(s2);
        boolean b2 = s1.equalsIgnoreCase(s2);
        System.out.println(s1 + " equals " + s2 + ":" + b);
        System.out.println(s1 + " equalsIsIgnoreCase " + s2 + ":" + b2);

续更……

  1. 基本数据类型:byte、int、long、short、float、double、char、boolean

  2. 逻辑运算符: &、|、^、&&、||
    在这里介绍一下异或(^):和或有点不一样
    两边结果一样就为false
    两边结果不一样为true

  3. 位运算符: << >> >>>(无符号右移)

练习————高效的计算出2*8

 2*8 = 2<<3;  //将2左移三位即为2*8 = 16;
  1. 重载的定义:

在同一个类中,如果出现了两个或两个以上的同名函数,只要他们的参数个数或者参数类型不同,就可以称之为函数重载了。

如何区分重载和重写
** 重载 **:当函数同名时,只看它们参数列表,和他们的返回值没有关系!


** 重写 **:父类与子类之间的多态性,对父类函数的重新定义。如果子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写,返回值必须是父类的类型或者是子类的类型
5. Java内存管理

Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。

对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民—既拥有每一个对象的"所有权",又担负着每一个对象生命开始到终结的维护责任。
对于Java程序员来说,在虚拟机的自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,而且不容易出现内存泄漏和内存溢出问题,看起来由虚拟机管理内存一切都很美好。不过,也正是因为Java程序员把内存控制的权力交给了Java虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那排查错误将会成为一项异常艰难的工作。
6.构造函数:
1. 该函数的名称和所在的类的名称相同

2. 不需要定义返回值类型

3. 该函数没有具体的返回值

4. Attention: 所有对象创建时都需要初始化才能使用。

5. 注意事项:一个类在定义时如果没有定义过构造函数,那么该类会自动生成一个空参数的构造函数,为了方便该类创建对象,完成初始化。如果该类自定义了构造函数,那么默认的构造函数就没有了。

6. 一个类中,可以有多个构造函数,因为它们的函数名称都相同,所以只能通过参数列表来区分。所以,一个类中如果出现多个构造函数。它们的存在是以重载体现的。
7.创建一个对象在内存中都做了什么?
Person p = new Person();
1.先将硬盘上指定位置的Person.class文件加载内存。
2.执行main方法时,在栈内存中开辟了main方法的空间(压栈——> 进栈),然后再main方法的栈区分配了一个变量p 
3.在堆内存中开辟一个实体空间,分配了一个内存的首地址值。new
4.在实体空间进行属性的空间分配,并进行默认初始化。
5.对空间的属性进行显示初始化。
6.进行实体的构造代码块初始化。
7.调用该实体对应的构造函数,进行构造函数初始化。
8.将首地址赋值给p,p变量就引用了该实体。
8.静态方法
<  静态方法可以通过类名调用,任何的实例也都可以调用,因此静态方法中不能使用this和super关键字,不能直接访问所属类的实例变量和实例方法
(就是不带static的成员变量和成员方法),只能访问所属类的静态成员变量和成员方法。因此实例成员和特定的对象关联!
9. 抽象类和接口的区别
1.  抽象类只能被继承,而且只能被单继承;接口需要被实现,而且可以多实现。
2.  抽象类可以定义非抽象方法,子类可以直接使用;接口中都是抽象方法,需要子类去实现。
3.  抽象类使用的是is a关系;接口是like a关系。
4.  抽象类的成员修饰符可以自定义;接口中必须是public。  

***由于本人能力有限,只能写到这里,后续会继续更新的!! ***

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值