黑马程序员技术交流社区

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

作者: 红色蒲公英    时间: 2018-5-12 21:43
标题: 技术贴
本帖最后由 红色蒲公英 于 2018-5-12 21:46 编辑


关键字:被Java语言赋予了特定含义的单词
关键字特点:字母全部小写,编辑器直观显示.
常量含义;在程序的执行过程中,其值不可以发生改变的量
常量分类;
A;字符串常量;"helloworld"
B 整数常量;12,-34
C.小数常量 1.5  2.3
D 字符常量 '1' 'q'
E 布尔常量 true  false
F 空常量 null
变量含义;内存中一小块区域,在程序的执行过程中,其值可以在一定范围内发生改变量
组成;
A 对区域要有限定
             如何限定? 用数据类型来限定
B 区域要有名称
             变量名
C 区域要有变量
             初始化值

数据含义;
数据类型分类
A   基本数据类型
B   引用数据类型 (类,接口,数据)

基本数据类型
      分4类8种
      A 整数               占用字节数
         byte                   1    -128--127
         short                  2
         int                      4
         long                   8
                        
      B 浮点型
        float                   4
        double               8

      C 布尔型
        boolean             1

      D 字符型
        char                    2 可以存储中文
       byte short char > int > long > float > double


   整数默认int 存储      int x= 10;
   小数默认double 存储   float x= 10.0f;
                              double xiuxiu = 10.0;

    定义float类型和long类型要注意
    float 取值时要加F或者f,
    long 取值时值在int范围内时可以不加,超过范围要加L或l.建议直接加大写L
    float的取值范围比long大.

标识符;用来给包,类,方法,变量等起名字的符号.

组成规则;
        A,unicode 字符
                数字字符,英文大小写字母,汉字(不建议使用汉字)
        B,下划线 _
        C,美元符 $
注意;不能数字开头,中间不能有空格,不能是关键字
常见命名规则;
        A,基本要求
                见名知意
        B,常见的命名
                a.包(其实就是文件夹,用于对类的管理)
                        全部小写,多级包.隔开  域名反写
                b.类
                        单个或多个单词,首字母大写
                c.方法和变量
                        一个单词,都小写.多个单词,从第二个单词开始首字母大写                     
                d.常量
                        每个字母都大写,多个单词用_隔开
变量定义的注意事项;
        A.变量未赋值,不能直接使用
        B.变量只在它所属的范围内有效
                变量属于它所定义到右大括号结束
        C.一行可以定义多个变量,但是不建议

数据类型中的类型转换;
  
        分类;

        隐式转换;(自动类型提升)
                int + int类型,其结果用int 类型接收
                int + byte类型 先将取值范围小的byte类型提升成int类型.在坐运算
                取值范围;byte short char > int > long > flost > double
        强制转换;目标类型 变量名 = (目标类型) (被转换数据);
                建议;数据做运算,结果属于什么类型,就用什么类型接收,
                     尽量不要强制转换,结果会损失精度
byte char short > int > long > flost > double 取值范围大小
        
byte b = 3; //java有常量优化机制
// -128~127,由于3属于byte 取值范围内,那么jvm会检查,在范围内会自动做强转

运算符
        算数运算符 + - * / %  ++  --
        逻辑运算符; & | ^ ! && ||  (连接两个boolean类型的关系式)
        关系运算法符; == (不要写成一个=号.=是表示附值);
        附值运算符 +=  -=  *=  /=  %=
        三元运算符

关系运算符;!= ;>;>= ;< ; <= ;
        关系运算符 ,条件表达式,布尔(boolean)表达式 都是一种表达式
        结果都是boolean类型  true 或者 false


字符参与运算;
        'A' = 65
        'a' = 97
        '0' = 48

字符串参与加法运算.其实做的不是加法运算,而是字符串的拼接


++在后面,先拿变量做操作,然后变量再++(+1)
++在前面,变量先++(+1),然后再拿变量做操作


int a = 10;
System.out.println(a++)   输出是10   然后a = a + 1 = 11
System.out.println(++a)          输出是12    a = 1 + a = 1 + 11 = 12

赋值运算符
+= -= *= /= %=
int a = 10
a += 20
System.out.println(a); 输出是30

++ -- += 类都包含了强制类型转换
byte a = 10;b
b += a  // byte b = a + b       a + b 默认是int类型.

逻辑运算符 (连接两个boolean类型表达式)   &  | ^ !   &&  ||    结果是boolean类型.true false
& (逻辑与)有false 则false && 有false则false  
|(逻辑或) 有true则true
^(逻辑异或) 相同则false 不同则true 例如男女关系,男男false 男女true
!(逻辑非) true则false false则true

&&(短路与)具有短路效果,前面false后面不执行,&不管前后是true还是false都执行

&&    短路情况(&&)下,左边是false时,右边不执行 结果是false

&        左边是false时,两边都执行 结果是false

||    短路情况(||)下,左边是true时,右边不执行 结果是true

|        左边是true时,两边都执行 结果是true


三元运算符;

        关系表达式?表达式1:表达式2
执行流程;
        A;计算关系表达式的值,看是true还是false
        B;如果是true, 结果是表达式1
          如果是false,结果是表达式2


eclipse 快捷键  
        Alt+/                  自动补全.提示信息,帮助写构造方法的参数
        Ctrl+Shift+F        代码格式化
        Ctrl+Z                返回
        Ctrl+Y                前进
        Ctrl+/                行注释
        Ctrl+Shift+/        多行注释
        Ctrl+Shift+\        取消多行注释
        Ctrl+Shift+o        导入包
        Alt+上下箭头        移动行向上/向下
        Ctrl+Alt+上下箭头        复制当前行或多行
        Ctrl+D                删除当前行
        Ctrl+1                意见提示功能 可以自动创建方法.
        Ctrl+2                L 创建当前对象
        shift + enter          直接进入下一行 不改变本行内容.
        shift +         光标 /+ End 直接选中
        shift + Tab           前移
        Alt + shift + r 选中所有相同的变量.
        Ctrl + shift + T 查看源代码
        Ctrl + shift + Y 转成小写
        Ctrl + shift + X 转成大写
        Ctrl + 鼠标左键 (可以查看变量的由来)查看源代码(回来用Alt + <-)
        Ctrl + n        在包下创建文件
        Alt + shift + S  有下划线点击那个字母就可以创建get 构造函数等.
        Alt + shift + M  封装成方法;
        Alt + shift + L  创建对象来接收

数组定义格式
               A.数据类型[] 数组名;int[] arr     这种方式用的比较多
               B .数据类型   数组名[]int arr[]
                推荐用a方式,但是b方式要看得懂
解释:A是定义一个int类型的数组,数组名是arr
B是定一个int类型的变量,变量名arr[ ]数组
数组的初始化
                a、动态初始化
                        只给长度,系统会给出默认值
                        举例: int[] arr = new int[3];
                b、静态初始化
                        给出值,系统决定长度
                        举例:int[] arr =new int[] {1,2,3};
                        简化 int[] = {1,2,3};
                总结:所谓数组初始化,就是为数组开辟内存空间,并为
                        数组的每个元素赋予初始值。

                        new:在右边为数组申请内存分配开辟空间

    数组中最常见的问题
       A:ArryIndeoutofboundsExcption:数组索引越界异常
                原因:你访问了不存在的索引,超过其数组长度了
        BNullPointerException:空指针异常
                arr =null
                System.out.println(arr[0]);
         原因:数组已经不在指向堆内存了,而你还用数组名访问元素。

为了解决我们去解决数组元素的个数,数组就提供了一个属性:length
用于获取数组元素的个数
格式:数组名.length
  int[] arr;
System.out.println("数组共有"+"arr.length"+"个")

数组遍历:
public static void printArray(int[] arr) {
for(int x=0; x<arr.length; x++) {
System.out.println(arr[x]);
}
}


最大值:
public static int getMax(int[] arr) {
int max = arr[0];

for(int x=1; x<arr.length; x++) {
if(arr[x] > max) {
max = arr[x];
}
}
return max;
}

最小值:
public static int getMin(int[] arr) {
int min = arr[0];

for(int x=1; x<arr.length; x++) {
if(arr[x] < min) {
min = arr[x];
}
}
return min;
}

逆序
public static void reverse(int[] arr) {
for(int start=0,end=arr.length-1; start<=end; start++,end--) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
}





作者: 小浙姐姐    时间: 2018-5-15 12:02
很全,分享的棒棒哒~




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