1.入口函数
package org.example;
/**
* Hello world!
*/
public class App {
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
这个main作为入口函数,前面有几个修饰符
public:关键字 public 表示方法可以被外界访问到
static:意味着该字段或方法不依赖于任何特定的对象实例 。 即使我们从未创建过该类的对象,也可以调用其静态方法或访问其静态字段。
void:基本数据类型一种,表示不返回任何值
main:是函数入口的关键字,我改成main1就执行不了了
String[] args后面再描述
2.变量类型
JAVA变量分为基本变量类型和引用变量类型
基本变量的数据类型
类型 | 范围 | 字节数 |
byte | -128 ~ 127 | 1 |
short | -32768 ~ 32767 | 2 |
int | -2147483648 ~ 2147483647 | 4 |
long | 长整数 | 8 |
float | 单精度浮点数 | 4 |
double | 多精度浮点数 | 8 |
char | 字符 | 2 |
String (or any object) | 字符串 | |
boolean | true false | 4 |
public class App {
public static void main(String[] args)
{
System.out.println("Hello World!");
int i=1;
long l=123L;
float f=123F;
double d =123D;
System.out.println(d);
}
}
引用变量类型:指针变量类型
3.运算
移位运算
通俗来说,正整数,左移就是乘2,右移就是除以二。
下面代码的1>>1,第二个1表示移动的位数
public class App {
public static void main(String[] args) {
byte i = 1;
byte j = 1;
System.out.println(i >> 1);
System.out.println(j << 1);
}
}
1的二进制数
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
这个<<可以看成一个箭头,指向左边表示左移,指向右边,就是右移
左移
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
当然就是2
右移
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
当然就是0
负数的移位比较复杂,暂时不考虑,感兴趣的可以看看计算机组成原理
10进制转二进制
String s = Integer.toBinaryString(1<<1);
可以打印出具体的二进制数
位运算
public class App {
public static void main(String[] args) {
byte i =0b01;
byte j =0b00;
byte m =0b10;
byte n =0b11;
System.out.println(Integer.toBinaryString(i&n));//与
System.out.println(Integer.toBinaryString(i|n));//或
System.out.println(Integer.toBinaryString(~m));//非
System.out.println(~m);//非
System.out.println(Integer.toBinaryString(i^m));//异或
}
}
4.修饰符
在定义类,变量,方法,接口的时候,会遇到很多修饰符,这里做个总结,方便自己查阅
下面表格,可能不一定对,在进一步学习中完善
public | 修饰类 | 可供外部调用 |
方法 | 可被继承,覆写,访问 | |
属性 | 可被继承,覆写,访问 | |
private | 方法 | 父类: 父类内部可以访问,实例化后不能访问 子类 子类内部不可方法,实例化也不能访问 |
属性 | 父类: 父类内部可以访问,实例化后不能访问 子类 子类内部不可方法,实例化也不能访问 | |
protect | 本包,本类中,和public没有区别 | |
final | 类 | 阻止继承 |
方法 | 阻止覆写 | |
属性 | 组织重新赋值 | |
abstract | 类 | 抽象类,无法实例化 |
方法 | ||
属性 | ||
static | 方法 | 不需要实例化,可以直接类名.方法执行 |
属性 | 不需要实例化,可以直接类名.属性访问,相当于全局变量 |
搜集到的图片总结,来源:https://www.cnblogs.com/jingmengxintang/p/5898900.html
5.接口
接口可以拥有静态属性
interface Person {
public abstract void run();
public static final int age=1;
}
class student implements sportsStudent {
public void printAge() {
System.out.println(this.age);
}
public void run() {
}
}