java吧 关注:1,273,838贴子:12,786,620
  • 12回复贴,共1

[学习笔记]新手学javaSe详细记录,同时附上理解心得和相关代码

取消只看楼主收藏回复

楼主之前从来没学过java,只是听过,但听的最多的是c,以前一直好奇软件是怎么做出来的,大学也有c语言课,但当时看到的是DOS类窗口,发现没一点兴趣。楼主比较喜欢“现实”的东西,看到那些DOS 命令行什么的兴趣感觉没有,太抽象了,所以大学时基本没上过c语言课了。
楼主已经毕业两年多,社会经验也有一些,专业是网络工程方面,毕业后在某国企从事运维工作,后来辞掉做了一段时间市场工作
所以楼主的基础为:了解计算机,会用电脑,网络工程主要是思科华为那种,但楼主也表示没学到什么,(偷笑~)编程方面除了知道有什么语言外,0基础,市场经验就学会了坑蒙拐骗“献身”客户(害羞)
学java的目的是想既然专业是计算机,还是掌握一门一比较好,其实楼主是因为接触了市场方面的东西,想自己赚点外快。网络工程就算了,本专业干的也是本行开始,知道不符合楼主的意愿,后来想过平面设计,三维设计,程序开发,思来想去综合一下还是选了程序开发,因为楼主没学过什么画画,这方面很白痴,怕学了只会改图,而且不符合楼主的规划。
学java前,楼主百度了编程语言方面的资料,c++学成时间花费太久,php算是入门简单的,.net跟java很相似,但是.net貌似只能在windows下,楼主不喜欢被束缚的感觉,再加上楼主表示对web方面感兴趣,对比.net,但还是选了java。
选java的理由是:
1.跨平台(这里楼主表示其实好奇linux方面的东东,觉得以后顺带学了)。
2.web方面貌似很强,还附带移动开发(安卓......)
3.PHP是现在开发网站用的很多的语言,但感觉学PHP会浪费时间(想学一门基础语言,要用到再学这个应该很容易)
4..net网上看了很多,据说开发比java快,什么封装好的东西什么什么的,但觉得好像不能让自己了解更深。索性跟java差不多,不如需要的时候返回来再学
以上让楼主决定学java,其实还有一个原因就是,楼主发现培训机构的视频好像java更早,并且楼主也只下到了一套完整的java学习视频,当然还有朋友的推荐。
以上告知基本情况,如果回复楼主叫楼主不要踏入这行的就算了,楼主的主观意识比较强,什么干这行没出息,30岁后当不了管理不要学,不喜欢不要学之类的。从楼主的经历来说下基本感受:各行各业都相差不多,行行有能手也是肯定的,干程序员的羡慕做市场的,做市场的羡慕做财务的等等等,如果你没有多少社会经验,你的一切认为其他行业就是好都是相对的,楼主因为属于懒惰类型,而貌似学编程需要多敲多敲,所以选择贴吧来限制自己并希望从学习笔记得到各位前辈的指点
以下正式开始发布学习经验,前几天学的可能更新较快,楼主每天学的时间不多,但绝对不断更,就是会把学完javaSE的东西都贴上来,看我打这么多都应该相信楼主的啦


1楼2013-01-22 07:23回复
    楼主学习的准备工作:
    1.学习视频一份(在某分享论坛刷了好多资源币下载的),主体是毕向东25天的视频。后来看到官方有35天的,当时就气死我了,还以为人家故意少发10天,结果下载下来是两个版本,而且35天的声音很难听,有杂音,不推荐,看了下多了些html css啊之类的东西。
    这里专门找了单独的下载地址,分享给各位。(毕向东25天教学视频)

    2.敲代码的:EditPlus(可以设置直接编译和运行哦)


    3楼2013-01-22 07:34
    回复
      2025-08-13 21:27:26
      广告
      不感兴趣
      开通SVIP免广告
      第一天内容:
      主要介绍软件开发基础常识,然后是几个dos命令,前几天学的时候表示一上来第一个视频就是DOS命令觉得很崩溃。然后是java环境搭建,配置环境变量。然后写了第一个据说是全球最牛的程序 helloworld 为了方便阅读,楼主表示截图发吧

      后面学了注释的使用 比如
      //单行注释
      /*
      多行注释
      */
      helloworld的组成部分
      1.通过class关键字定义一个类
      2.保证独立运行,在类中定义一个主函数,格式是public static void main(String args)
      3.输出语句 System.out.println("hello world");


      5楼2013-01-22 07:48
      回复
        第二天内容:
        一:java语言基础组成(关键字,标示符,注释,常量和变量,运算符,语句,函数,数组)
        1.关键字:被java语言赋予了特殊含义的单词,都为小写(大概意思是这些都是被java收入后宫的东东)
        2.标示符:在程序中自定义名称,有26个英文字母大小写,数字0-9,符号_$组成,严格区分大小写,并且不能用关键字(java的后宫你不能用啊~),记住为了阅读性要起的有意义的名称
        3.注释:就是程序里的笔记,方便看懂,相当于上学课本的注解,程序本身不运行这些,// or /* */ 里的就是注释,如下

        4.常量和变量:常量顾名思义就是固定的数值咯,变量就是可以改变的。
        常量分类:
        1.整型常量,就是整数啦
        整数java有三种表现形式
        十进制:0-9,满10进1,我们日常用到的就是这个啦
        八进制:0-7,满8进1,用0开头表示,这个八辈子都没接触过
        十六进制:0-9,A-F,满16进1,用0x开头表示,这个还是看过
        2.小数常量,就是小数啦
        3.布尔常量:特殊,就两个值,true和false,就是真和假的意思
        4.字符常量:'xx',单引号里的东东('4','+','a')
        5.字符串常量:"xx",双引号里的东东("44","++","aa")
        6.null常量:就一个数值null
        二:进制特点
        任何数据在计算机中都是以二进制的形式存在,二进制是由电信号开关演变,二进制只有0和1
        十进制->二进制 如10 (原理:对十进制进行除2的运算)
        2|10 ->0
        2|5 ->1
        2|2 ->0
        1
        从后往前排就是1010,所以10的二进制是1010
        2.二进制 ->十进制(原理:二进制乘以2的过程)
        如:1010 (从最低位开始,0次冥开始乘)
        0*2^0 + 1*2^1 + 0*2^2 + 1*2^3
        (0乘以2的0次方 + 1乘以2的1次方 + 0乘以2的2次方 + 1乘以2的3次方)
        0+2+0+8 = 10
        总结规律:如一个二进制数 1 1 0 1 1 1 0
        64 32 16 8 4 2 1 (0次冥开始递增)
        乘以0肯定为0,所以只需要加上乘以1对应的数,则64+32+8+4+2=110
        其他进制转换-转成16进制(4个二进制位就是一个16进制位)
        如 62
        二进制是 0011 - 1110
        由规律得出3 - 14 ->3e
        而十六进制逢10进1,由a-f代替,所以14就变成了e
        转成8进制(3个二进制位代表一位)
        如 62
        二进制 000 - 111 - 110
        规律得出 0- 7 - 6 -> 76
        负数的二进制表现形式(一个字节占8个二进制位)
        比如 6的二进制是 110
        -6:其实就是6的二进制取反+1(取反:将二进制的1变成0, 0变成1)
        0000-0000 0000-0000 0000-0000 0000-0110数字6
        1111-1111 1111-1111 1111-1111 1111-1001取反
        0000-0000 0000-0000 0000-0000 0000-0001加1
        ----------------------------------------
        1111-1111 1111-1111 1111-1111 1111-1010结果-6


        9楼2013-01-22 09:14
        收起回复
          感觉这些什么进制转换啊,还有后面的运算符什么的,先了解知道即可,具体用才记得住。楼主表示上面发的完全记住了,写帖子也是为了加强记忆


          10楼2013-01-22 09:25
          收起回复
            楼主发现现在回顾视频课程写的笔记有点乱,为了方便同一套视频学习的同学看笔记或参考,楼主决定按照视频进度来记录


            11楼2013-01-22 09:37
            回复
              变量:顾名思义就是可以改变的东东,在计算机里就是将不确定的数据进行存储 一般都会起一个变量名,例如: int num = 9;后期可以通过变量名操作数据
              数据类型:1基本数据类型和2引用数据类型
              1包括数值型(整数类型:byte,short,int,long)(浮点类型:float,double)
              字符型(char)布尔型(boolean)
              2.包括类 class 接口interface 数组[] ps:暂时不管,后面会学到
              基本数据类型应该是平时会直接用到的,引用数据类型估计是需要的时候去指向或者相当于去拿一个具体事物里的东西吧?(语文表达不能
              默认类型:整数是int,小数是double
              相关演示数据类型:
              (字节)byte a1 = 2;//范围是-128~127 大小是8位
              (短整型)short a2 = 30000;//范围是-32768~32768 大小是16位
              (整型)int a3 = 999999;//范围是-2147483648~2147483648 大小是32位
              (长整型)long a4=999999999999L;//范围是-9233372036854477808 大小是64位
              (浮点型)float a5=0.0f;//范围是-3.40292347E+38~3.40292347E+38 大小是32位
              (双精度)double a6=0.001;
              //范围是-1.79769313486231570E+308~1.79769313486231570E+308 大小是64位
              (字符型)char a7 = "java";// 范围是\u0000~u\ffff (Unicode码)大小是16位
              (布尔型)boolean //true或者false 默认是false 大小是1位
              类型转换:byte a = 3;a=a+2;
              a = (int)(a+2);//强制转换
              System.out.println('a'+1);//ascii表里a是97
              System.out.println((char)('a'+1));//强制转成char类型


              12楼2013-01-22 10:32
              收起回复
                算数运算符:大家上学的时候都学过了一些,就是用来计算数据的
                加减乘除 + - * /
                还有 取模%(5%5=0) 自增++(a++,++a) 自减--(a--,--a) 字符串相加("ja"+"va")
                这里稍微练习下就熟悉了
                比较运算符:相差不多,上学学的什么大于 等于 大于等于 小于等于神马的
                == 相等于 程序里是这样的 比如 3==3
                !=不等于 4!=3
                < 小于 3<4
                >大于 4>3
                <= 小于等于 3<=3
                >= 大于等于 3>=3
                PS:比较运算符的结果都是boolean型,就是要么是对,要么是错,==不能误写成=
                逻辑运算符:楼主已经忘记了上学有没具体学过这些
                & AND与 :真&假 只要有一个假,结果都为假,只有两边都为真时,结果才为真
                | OR 或:真|假,只要有一个为真,结果都为真,只有两边都为假时,结果才为假
                ^ XOR异或:真^假 两边相同结果为假,两边不同结果为真
                ! Not非:非真,那就是假咯,非假那就是真咯
                && AND短路:a>3&&a<6,假如a是2的话,2>3为假,则运算停止(当左边为假时,右边不运算)跟&的区别应该是,&不管真假都运算,&&碰到假就停止后面运算,这样是不是有效节省计算机资源呢?
                || OR短路 :a>3||a<6 ||碰到真了,就不运算后面的(当左边为真时,右边不运算),而|是不管真假都运算完
                位运算符:都是二进制运算,因为是计算机嘛
                << 左移
                >> 右移
                >>> 无符号右移
                &与运算
                |或运算
                ^异或运算
                ~反码
                这里楼主不详细打了,太基础了,写完上面的再回顾下面的很快就理解,注意都是二进制位计算就OK了
                转义字符:通过\来转变后面字母或者符号的含义
                \n:换行
                \b:退格,相当于键盘上的backspace
                \r:按下回车键,windows系统回车符是由两个字符表示\r\n
                \t:制表符,相当于tab键
                其实这些相当于用代码实现我们平时键盘上的一些功能


                17楼2013-01-22 20:10
                回复
                  2025-08-13 21:21:26
                  广告
                  不感兴趣
                  开通SVIP免广告
                  这里讲到一个小练习,用运算符进行数值交换,这里不要考虑楼主的代码规范神马的,只看内容

                  用第三方变量,相当于玩杂技里 双手抛三个球。
                  而通过加减或者异或,则是利用了运算符的特性进行了互换
                  百度搜索了一下异或方面的注意事项:貌似不能操作同一变量,额这里求大神解答


                  20楼2013-01-22 21:01
                  回复
                    三元运算符:条件表达式只有两结果,就是真与假
                    格式:(条件表达式)?表达式1:表达式2
                    如果条件为true,运算后的结果是表达式1
                    如果条件为false,运算后的结果是表达式2

                    其实就是判断条件的问题,跟现实社会中都有一一映射,还是比较好理解的
                    下一步就是程序流程方面的内容了


                    21楼2013-01-22 21:12
                    回复
                      java语句:程序流程控制
                      1.判断结构:if else(如果....否则...)
                      if(条件表达式)
                      {
                      执行语句;
                      }
                      else
                      {
                      执行语句;
                      }
                      if else结构可以简写成: 变量 = (条件表达式)?表达式1:表达式2;
                      其实就是三元运算符
                      好处就是简化if else代码
                      不好的就是,因为是一个运算符,所以必须要有一个结果
                      总结就是,如果什么什么就什么什么,否则就什么什么
                      2.选择结构:
                      switch(表达式)
                      {
                      case 取值1;
                      执行语句
                      break;
                      case 取值2;
                      执行语句
                      break;
                      ......
                      default;//如果以上条件都不符合,则执行默认
                      执行语句
                      break;
                      }
                      总结:有多个条件,一个一个判断是否符合,是则执行后返回结果然后继续下一个


                      23楼2013-01-24 02:38
                      收起回复
                        for 循环,意思是符合条件内,就循环的执行,这里有个传说中的九九乘法表
                        for (初始化表达式;循环条件表达式;循环后的操作表达式)
                        {
                        执行语句
                        }
                        还有for嵌套
                        for (初始化表达式;循环条件表达式;循环后的操作表达式)
                        {
                        for (初始化表达式;循环条件表达式;循环后的操作表达式)
                        {
                        执行语句
                        }
                        }

                        break和continue语句:作用的范围。
                        break:跳出循环
                        continue:只能作用于循环结构。继续循环。特点:结束本次循环,继续下一次循环
                        break和continue单独存在时,下面不可以有任何语句。因为都执行不到


                        28楼2013-01-27 02:05
                        回复
                          楼主已经学到面向对象了,时间比较紧,发现做详细的笔记时间远远不够


                          29楼2013-01-27 02:11
                          收起回复