Java-Java不同于C/C++的基础语法-Java一些常见快捷键

10 篇文章 0 订阅

不同于C/C++的基础语法

字面量

  0对应int
  0L对应long
  0.0对应double 8个字节
  0.0F对应float 4个字节

字面量的分割

  1000_0000
  在使用过程中可以忽略"_"

数组的声明

  int[] a;
  int[] a = new int[] {1,2,3,4};
  String[] a = new String {“hello”, “world”};
  int[] a = new int[5];

数组获取长度

  只能是arr.length

打印数组的元素

方法一
  string str = Arrays.toString(a);
  System.out.println(str);
方法二
  同C++一样,通过for循环,下标访问的方式打印
方法三
  同C++11类似,在Java中叫做for-each方法

for(int i : a)
            System.out.println(i);

引用和对象

  1.Java中没有指针和地址的概念
  2.Java不允许程序直接接触到对象,只能通过引用这种工具,间接地操作对象
  3.一个引用可以不关联一个对象,但如果要关联到对象上,则只能关联到一个对象上
  4.一个对象可以被多个引用所指向
  5.一个引用可以指向什么对象有规定
  6.形参的改变不会影响实参

类的加载

  在目前的理解中,类一旦被加载过一次,则在整个程序运行期间不需要再次加载了,JVM在实现类的加载的时,并不是一开始把所有用到的类全部加载出来,而是等真正用到的时候才加载。

class的定义

  一个文件中可以有多个class,但是只能有一个public class,并且public class的名字 == 文件名,其他类的名字不能重复。

  1.需要开头通过package声明
  2.需要把java文件放到对应的文件夹下
  3.特例,没有声明过的包的类,可以认为输入默认包,有其他属性尽量让每个类都属于某个包
  4.建议每个包名是域名的反写

string类

string的常用方法

  char charAt(int index)
  返回下标处的字符

  char[] chars = s.toCharArray()
  把字符串s按字符一个一个放到数组chars中

  s.length()
  返回字符串的长度

  int compareTo(String anotherString)
  是否包含,考虑大小写

  int compareToIgnoreCase(String str)
  是否包含,不考虑大小写

  String concat(String str)
  拼接两个字符串

  boolean contains(CharSequence s)
  询问某一个字符串在不在里面

  boolean endsWith(String suffix)
  询问字符串是不是以啥结尾

  boolean startsWith(String suffix)
  询问字符串是不是以啥开头

  boolean equals(Object anObject)
  是否相等考虑大小写

  boolean equalsIgnoreCase(String anotherString)
  是否不相等不考虑大小写

  static String format(String format, Object… args)
  用什么填充

  int indexOf(String str)
  查找某一个字符串,返回下标

  int indexOf(String str, int fromIndex)
  从下标处开始查找某一个字符串,返回下标

  replace(oldString, newString)
  把旧字符串替换成新字符串

  split(regex)
  按正则表达式(regex)分开字符串并返回String[]

  join(string)
  用什么字符串把字符串拼起来(连接)

  toUpperCase()
  字符串全大写形式

  toLowerCase()
  字符串全小写形式

  isEmpty()
  判断是否是空字符串

  trim()
  裁剪掉字符串两边的制表符,空格,回车

  p instanceof student
  判断p指向的对象是不是student对象,是true

为什么String要设计成不可变对象?

优点:
  即使通过引用共享同一个String对象,由于String对象不可变,所以随便共享出去,也没人改变其值,不需要担心因为别人改变引发的BUG
缺点:
  少数情况下,相同的值会创建出很多的对象,导致空间利用率低,只要按照正确的代码写,很少遇到该情况
奇特的现象:
  1.由于不可变s=“123”和t=“123”指向的是同一个空间
  2.s=“123”和new出来的不是同一个空间

类和对象之继承

  extents是继承的关键字

public class my extends myThis
{}

  super作为关键字,明确调用父类的构造方法,只能出现在子类构造方法中,必须是第一条语句,可以是隐示和显示的
  super关键字的第二个用法,可以看作指向“父类对象”的引用

重写

  1.必须发生在子类中
  2.父类中需要有同名的方法
  3.参数列表相同+返回值类型也相同
  4.访问限界符只能更大不能更小
  5.建议带上Override注解,方便编译检查是否重写了新的方法
  6.重写可以通过super调用父类的同名方法
  7.通过对象执行时,执行对象中优先找到,先子类中找,再父类中找,执行重写的方法,没有重写时,执行父类的方法

final

  1.修饰变量的定义,属性,静态变量,形参变量,局部变量,该变量只允许有一次赋值机会
  2.修饰类的定义,这个类不能被继承,这个类不能有子类
  3.修饰类中的普通方法,这个类的子类中不能重写被final修饰的方法

abstract 抽象类

public abstract class SuperClass
{
	public abstract void method(){};
}

  抽象方法只能出现在抽象类中

interface接口

1.接口的定义
  interface 名称 {…}
2.接口中的方法
  不要写访问限界符,都是public
  不要写abstract
  需要写方法体void method();
3.还有一个以后说

泛型

  java中的泛型只支持引用类型,不支持基本类型,比如int就要写成Integer
  泛型技术是编译前的一项技术
  随着编译的发生,泛型所代表的具体类型信息就会被抹去——类型擦除
  泛型有约束,不能直接实例化对象,不能用在静态里面
  定义时,有上下界之说,使用时,有无通配符之说(?)

Java一些常见快捷键

  1.双击类名,shift+F6可以修改类名
  2.鼠标放在方法上,ctrl+点击可以进入方法的内部
  3.psvm+Enter可以快捷生成main方法
  4.sout+Enter可以快捷生成System.out.println();
  5.在类中按下Alt+Insert可以快捷生成想要生成的构造函数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天津 唐秙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值