黑马程序员技术交流社区

标题: 技术贴 [打印本页]

作者: 吴英杰    时间: 2018-5-12 21:45
标题: 技术贴
JVM,JRE,JDK
JVM:虚拟机,Java运行的环境。Java要在这个上面运行。夸平台安装不同的虚拟机,就可以让一样的Java代码可以运行了。
JRE:Java的运行环境。包含了一些常用类、包。包含了虚拟机,也就是 JVM。
关键字
关键字不能作为类的名字、方法名字。
建议:常用的系统自带的一些东西,也不要写成类名、方法名。
常量
字符串:用双引号包裹的任何内容,都是字符串。
字符:用单引号包裹的。   里面只能有一个字符
Boolean  布尔型,只有两个值:true false
特点:值一旦输入(确定),就无法改变了
标识符(变量名字):
变量名字是 由数字、字母、下划线组成的,但是不能以数字开头。
变量可以包含$,可以是中文。
变量名不能是关键字
变量注意事项
1、定义变量,就是第一次初始化变量的时候,也就是第一次写这个变量的时候,写之前,必须用数据类型进行修饰,如:int a   float b     char c,告诉系统这个变量的类型是什么。
2、定义变量时,变量名不能重复
3、一行可以定义多个变量,但是不能定义的时候赋值。
4、变量定义后,必须赋值才能使用:
5、代码在正常状态下,是从上向下,从左到右运行的.
6、代码块
变量在自己的代码块里面定义,在代码块外面,系统无法访问到代码块里面的内容
隐式转换:
其实就是数据类型,由小 自动 变成大类型的过程
强制转换
由大变成小类型的过程
自增自减
单独使用的时候,++ --  在前面和后面效果一样。
a++;
++a;  效率会高一点

不单独使用的时候 如:
b= ++a
b= a++
c = b+a++
c = b+++a;
++在前,是先把自己+1 ,然后再干别的事
++在后,先干别的事,再把自己+1
比较大小运算符的注意事项
==  !=   < <=  >    >=
比较的是基本数据类型的大小
比较的结果,必然是布尔类型,而且只有真、假两个值
如果接收结果,就用布尔类型
&  && 两侧的式子结果都是真,整个结果返回真,有一个是假的,整个式子返回假
注意:代码从左向右运行。如果左侧的式子结果是假了,其实整个式子的结果已经出来了,为假。

|   ||   两侧,只要有一个式子为真,整个结果返回真。如果两侧都为假,式子返回假
注意:如果左侧的式子结果是真,其实整个式子结果也就出来了,为真。
三元运算符
别名 三目运算符
表达式 ?  内容1 :内容2
scanner其他用法
                        nextInt()  只获取数值,但是剩下一个\n 没有获取,\n是控制台遗留的换行符
                        next() 遇见第一个有效字符(非空格,非换行符)时,开始扫描 当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,获取除了换行符和空格之外的字符串
                        nextLine() 获取字符串
                        nextDouble() nextFloat() 获取浮点型数据
                        因为 next() nextInt() nextDouble() nextFloat() 接受数据后会遗留换行符,被nextLine()接受后会直接换行跳过,产生bug----了解就好,一般不会常用这个东西
switch
switch可以和部分if进行互换,想用哪个,没有硬性规定。我们以后根据自己的习惯,进行编写即可。如果以后switch不会,可以都用if  elseif
for和while的区别
for一般用于已知循环次数,或者循环结束条件时,进行使用。
数组
是一个容器,用来存储同一类型的一堆数据。注意,不能混存,混存的容器以后就业班会学到。
定义的方式:
数据类型[] 数组名
动态初始化:
数组长度不可变,
在声明数组的时候,给定长度。
数据类型[] 数组名 = new 数据类型[数字]
易错点
数组索引越界
方法重载
Java的同一个类中,方法可以同名。这就是重载。
满足条件:
        参数类型不能相同 || 参数个数不相同

如果参数类型相同,那么参数个数不能相同。

如果参数类型不同,那么参数个数随意。

在调用的时候,直接调用这个方法名字即可,我们按照想调用的方法的参数进行传递,系统会自动判断出应该调用谁。
根据需求去决定怎么写
public static
方法的名字:起名字遵循普通变量的命名规则,尽量起的有意义,不推荐拼音,推荐英文。
根据需求决定是否有返回值  如果没有  void  如果有 写明白即可
参数:参数,也是根据需要决定的,
方法的参数:
基本数据类型:在别的方法里进行了改变,不会影响到原来方法中的值。
引用数据类型:传递的是地址,如果对其进行了改变,会影响到原来的。
1.面向对象的好处:
- 更符合人类的思维方式
- 让复杂的过程简单化
- 让程序员从执行者变成指挥者
2.2. 类与对象:
类: 对现实事物的描述。

属性(成员变量)

    姓名  性别  年龄
行为(成员方法)

    吃饭  学习  睡觉

对象:对象是类的具体体现,对象就是类的一个实例。
##3.成员变量和局部变量的区别:

定义位置不同

    成员变量定义在类中方法外
    局部变量定义在方法中
内存位置不同

    成员变量在堆内存
    局部变量在栈内存
生命周期不同

    成员变量随着对象的生命周期
    局部变量随着方法的生命周期
初始化值不同

    成员变量有默认值
    局部变量没有默认值
        
##4. 封装:
###private 

是一个修饰符
用来修饰成员变量和成员方法
被修饰的成员只能在本类中使用

以后: 所有的成员变量都需要加private 然后提供公共的set和get方法。这是java的规范

##5. this

    区分成员变量和局部变量(当重名时)
    this代表当前类的对象


1.如果不写构造方法,系统会默认提供一个无参构造。
2.如果手动写了构造方法,那么系统就不会再提供默认构造了。
1.有main方法的类,我们称为测试类。测试类中的方法都需要加static。非测试类中的方法都不加static
2.成员变量的默认值:

    整数:0
    小数:0.0
    字符:空字符
    布尔:false
    引用类型: null
# 2. String的构造方法: #
    *     String(String s):把字符串数据封装成字符串对象
     *     String(char[] value):把字符数组的数据封装成字符串对象
     *     String(char[] value, int index, int count):把字符数组中的一部分数据封装成字符串对象
     *     "abc" :直接写一个字符串也是字符对象
 
最常用的是最简单的第四种。但是不同的构造以后有不同的使用场景。
3.1 判断方法 ##
     * boolean equals(Object obj):比较字符串的内容是否相同
      * boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
      * boolean startsWith(String str):判断字符串对象是否以指定的str开头
      * boolean endsWith(String str):判断字符串对象是否以指定的str结尾
3.2 获取功能 ##
     * int length():获取字符串的长度,其实也就是字符个数
     * char charAt(int index):获取指定索引处的字符
     * int indexOf(String str):获取str在字符串对象中第一次出现的索引
     * String substring(int start):从start开始截取字符串
     * String substring(int start,int end):从start开始,到end结束截取字符串。包括start,不包括end

## 3.3转换功能 ##
     * char[] toCharArray():把字符串转换为字符数组
     * String toLowerCase():把字符串转换为小写字符串
     * String toUpperCase():把字符串转换为大写字符串

## 3.4其他功能 ##
    * String trim()    :去除字符串两端的空格
    * String[] split(String regex) :按照指定的方式切割字符串
4.StringBuilder #
是一个可变的字符序列。能够对String做优化。

但是实际上用的很少。因为增加了学习成本和记忆负担。

## 4.1构造方法: ##
    * new StringBuilder()
    * new StringBuilder(String s)
## 4.2其他方法 ##
    * int length():获取长度
    * StringBuilder append(任意类型):在末尾追加数据
    * StringBuilder reverse():把当前对象反转
    * String toString():把StringBuilder转成String
作者: 小浙姐姐    时间: 2018-5-14 16:21
看了你的帖子感觉基础班都不用学了我就对java懂了好多,哈哈




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2