对于0基础的我来说,学了越久越发现基础才是最难懂的,记下来以后看

其实计算机还是挺抽象,为什么一块由电线,电路板组成东西可以存储声音,影像??很困惑,可是我想去理解。越去理解越了解,基础比进阶更难,特此

记下。

1:计算机基础知识概述

  • 计算机

    • 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。可分为超级计算机、工业控制计算机、网络计算机、个人计算机、嵌入式计算机五类,较先进的计算机有生物计算机、光子计算机、量子计算机等。

  • 计算机硬件

    • cpu

    • 硬盘

    • 内存

    • ...

  • 软件开发

    • 什么是软件?

      • 软件是一系列按照特定顺序组织的计算机数据和指令的集合。程序设计的最终结果是软件。

      • 系统软件系统软件为计算机使用提供最基本的功能例如:DOS(Disk Operating System), Windows, Linux, Unix, Mac, Android, iOS

      • 应用软件系统软件并不针对某一特定应用领域。而应用软件则相反,不同的应用软件根据用户和所服务的领域提供不同的功能。 例如:Word, Excel, PPT, QQ, FeiQ, 极域,Editplus Eclipse

    • 什么是开发?

      • 制作软件(我们就是干这个活)

  • 人机交互

    • 图形化界面:这种方式简单直观,使用者易于接受,容易上手操作。

    • 命令行方式:需要有一个控制台,输入特定的指令,让计算机完成一些操作。较为麻烦,需要记录住一些命令。

  • 键盘认识

    • 1,Tab(table)缩进

    • 2,shift转换键

    • 3,Ctrlcontrol)控制

    • 4,Windows

    • 5,AltAlternative)交换,替换

    • 6,空格

    • 7,Enter回车键

    • 8,上下左右键

    • 9,PrtSc(PrintScreen)屏幕截图

  • 快捷键和功能键

    • Windows快捷键

      • Windows徽标键+L键切换用户

      • Windows徽标键+TAB键在任务栏上的按钮间循环

      • Windows徽标键+E键启动我的电脑

      • Windows徽标键+D键快速显示桌面

      • Windows徽标键+R键执行运行命令

      • Windows徽标键+U键打开工具管理器

      • Windpws徽标键+M键将所有窗口最小化

      • Windows徽标键+F键搜索文件或者文件夹

      • Windows徽标键+F1键显示Windows帮助

      • Windows徽标键+Shift+M键将最小化的窗口还原

      • Windows徽标键+Ctrl+F键搜索计算机

      • Windows徽标键+PauseBreak键打开系统属性对话框

    • Ctrl快捷键

      • Ctrl+A全选

      • Ctrl+C复制

      • Ctrl+V粘贴

      • Ctrl+X剪切

      • Ctrl+Z撤销

        2:常见DOS命令

  • dir(directory) : 列出当前目录下的文件以及文件夹

  • md(make directory) : 创建目录

  • rd(remove directory): 删除目录

  • cd :(change directory)改变指定目录(进入指定目录)

  • cd..: 退回到上一级目录

  • cd\:退回到根目录

  • del(delete): 删除文件,删除一堆后缀名一样的文件*.txt

  • exit: 退出dos命令行

  • cls: (CLear Screen)清屏

    3:计算机语言

  • 语言:是人与人之间用于沟通的一种方式。

    • 例如:中国人与中国人用中文沟通。而中国人要和美国人交流,就要学习英语。而且语言不通有时候也会闹出一些笑话。

  • 计算机语言:人与计算机交流的方式。如果人要与计算机交流,那么就要学习计算机语。

    • 计算机语言有很多种,如:CC++Java等。这里,我们选择其中的一种:Java语言。我们可以看一下老师在网上找的计算机语言排行榜

  • 计算机语言分类

    • 机器语言: 机器语言是直接用二进制代码指令表达的计算机语言,指令是用01组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义。

    • 汇编语言: 汇编语言是使用一些特殊的符号来代替机器语言的二进制码,计算机不能直接识别,需要用一种软件将汇编语言翻译成机器语言。

    • 高级语言:
      使用普通英语进行编写源代码,通过编译器将源代码翻译成计算机直接识别的机器语言,之后再由计算机执行。

      4:Java语言概述和技术体系架构

  • JavaSUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言。是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。

  • Java的起源:一个Green项目

    • 1995年,Oak正式更名为java

    • 1996年,Sun公司发布JDK1.0

    • 1998年,发布了1.2,也叫java2

    • 1999年,Sun公司把java技术分成了J2SE,J2ME,J2EE

    • 2000年,JDK1.3,1.4发布

    • 2005年,Java的各个版本取消2

  • Java语言的三种技术架构

    • J2SEJava2 Platform Standard Edition)标准版

      • 是为开发普通桌面和商务应用程序提供的解决方案。该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发。比如Java版的扫雷。

    • J2EE(Java2 Platform Enterprise Edition)企业版

      • 是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如 Servlet Jsp等,主要针对于Web应用程序开发。

    • J2ME(Java2 Platform Micro Edition)小型版

      • 是为开发电子消费产品和嵌入式设备提供的解决方案。该技术体系主要应用于小型电子消费类产品,如手机中的应用程序等。

    • Java5.0版本后,更名为 JAVAEE JAVASE JAVAME

      5:Java语言特性(跨平台)

  • 高级语言的工作原理

    • windows下的c语言编程过程

      • c源程序(扩展名.c)-------->windows可执行性文件-------->windows操作系统

    • java语言编程过程

      • Java源程序(扩展名.java)-------->Java字节码文件(扩展名.class)-------->jvm虚拟机(跨平台)

        6:JDK,JREJVM之间的关系

  • JDKJava Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的JavaSDKJDK 是整个Java的核心,包括了Java运行环境、Java工具和Java基础类库。

  • JREJava Runtime EnvironmentJava运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。

  • JVMJava Virtual MachineJava虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。编译虚拟机的指令集与编译微处理器的指令集非常类似

  • 有图有真相

    7:JDK的下载,安装及卸载

  • JDK(JavaDevelopment Kit Java开发工具包)

  • 下载jdk官方网址:

    • www.oracle.com

    • java.sun.com

  • 安装jdk

    • 傻瓜式安装,下一步即可。建议:安装路径不要有中文或者特殊符号如空格等。当提示安装JRE时,可以选择不安装。 

      8:开发第一个Java应用程序

      class Demo{ public static void main(String[] args) {System.out.println("Hello World!"); }}

      1:进制转换

  • 其他进制到十进制

    • 其他进制包含二进制,八进制,十六进制

      • 转换规则

      • 先把数据的每一位上的系数乘以对应基数的次幂(低位从从零开始),然后相加即可

  • 十进制到其他进制

    • 规则:除基取余,直到商为0,最后将余数反转

      • 十进制到二进制

        • 2取余,直到商为0,最后将余数反转

        • 十进制13对应的二进制数据是1101

        • 二进制到十进制的技巧(8421)

      • 十进制到八进制

        • 8取余,直到商为0,最后将余数反转

        • 十进制13对应的把进制数据是15

        • 十进制--二进制--八进制

          • 首先把十进制转成二进制

          • 其次把二进制数据每三位组合。左边不够三位用0补位

          • 然后把每个组合计算成对应的十进制数据

          • 最后从左到右把数据相连接即可得到八进制

      • 十进制到十六进制

        • 16取余,直到商为0,最后将余数反转

        • 十进制13对应的把进制数据是D

        • 十进制--二进制--十六进制

          • 首先把十进制转成二进制

          • 其次把二进制数据每四位组合。左边不够四位用0补位

          • 然后把每个组合计算成对应的十进制数据

          • 最后从左到右把数据相连接即可得到十六进制

  • 快速转换法

    2:计算机中有符号数据表示法

  • 原码

  • 反码

  • 补码

    3:变量

  • 在程序的运行过程中,其值在指定范围内变化的值

  • 是内存中一个区域,用于存储数据

  • 变量的定义格式:

    • A:数据类型 变量名 = 初始化值;

  • 变量在使用的时候

    • A:第一种,在声明的时候,就初始化值

      • 数据类型 变量名 = 初始化值;

      • 举例:byteb = 100; System.out.println(b);

    • B:第二种 在使用前,赋值

      • 声明

      • 赋值

      • 使用

      • 举例byte b2;b2 = 100; System.out.println(b2);

        4:数据类型

  • java语言分为两种数据类型

    • A:基本数据类型

    • B:引用数据类型(,接口,数组)

  • 基本数据类型

    • A:区别 在内存中分配的空间大小不同,从而导致它表示的数据范围不同

    • B48

      • 整数

        • byte1个字节//8个开关,8个二进制位1byte = 8bit

        • short2个字节

        • int 4个字节0

        • long8个字节 其后加Ll标识

      • 浮点数

      • float4个字节 其后加Ff标识3.3f 2^63

        • 32个二进制位

        • 1位符号位

        • 8位代表指数位

        • 23位尾数位0.9999999

        • 0000000000- 111111111 0 - 255

        • IEEE754 0 255 特殊的值

        • 1 -254 - 127

        • 1 -127 = -126

        • 254- 127 = 127

      • double8个字节

      • 字符

        • char2个字节 0 -65535

      • 布尔型

        • booleanThis data type represents one bit of information,

        • butits "size" isn't something that's precisely defined.

        • 这个数据类型代表一个比特的信息,但它的大小不是精确定义的东西.

        • true,false

  • C:默认情况下:

    • 整数是int类型

    • 浮点数是double类型

      5:数据类型转换

  • 数据参与运算

    • A:整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则

      • 容量小的类型与容量大的类型进行计算,默认转换为容量大的数据类型;数据类型按容量大小排序为:

        • byte,short,char->int->long->float->double

        • byte short运算时不能和char之间互相转换,byte可以直接赋值给short,但是他们三者在计算时首先会转换为int类型

      • 容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出;使用时要格外注意。

      • 有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算。

    • B:强制转换符

      • 格式:(数据类型)(要被转换的数据)byte b = (byte)(300);

    • C:字符型参与运算

      • 首先会去找对应字符的unicode码值。然后运算。

      • char类型取值范围0~2(16)-1,我就有了一个问题?能不能把整数直接赋值给char类型的变量

    • D:布尔型参与运算

      • 不能参与运算

    • E:字符串参与运算

      • 它是和参与运算的数据相连接组成了一个新的字符串。

    • 思考:哪句是编译失败的呢?为什么呢?

      byteb1=3,b2=4,b;
      b=b1+b2;

    • (1)byte,short,char三种数据类型在内存中运算的时候会自动类型提升为int去运算

    • (2)b1b2是两个变量值,jvm无法判断里面值的大小

      b=3+4;

    • java编译器有常量优化机制,在编译的时候已经将3+4的结果赋值给b

      6:算术运算符+,-,*,/,%,++,--

  • A%

    • 当左边的绝对值小于右边:结果是左边

    • 当左边的绝对值等于右边或者是右边倍数的时候:结果是0

    • 当左边的绝对值大于右边:结果是余数,符号取决与左边的的符号

    • 取余的正负号取决于左边,右边忽略不记

    • 用途:任意正整数%2 结果是要么0,要么1。用于切换条件

  • B++,--

    • 递增,递减运算符。就是加1或者减1

    • 单独存在,放在操作数的前面或者后面,结果一样

    • 参与运算时:

      • 放在变量的前面,先自身加或者减1,然后再参与运算

      • 放在变量的后面,先参与运算,然后再自身加或者减1

  • C+

    • 作为数据的符号(正号)

    • 做加法运算

    • 字符串连接符"5+ 5 =" + (5 + 5);

      7:赋值运算符=,+=,*=

  • 赋值运算符

    • A=:赋值运算符 把右边的值赋给左边

      举例:int x = 3; 3赋给int类型变量xint a,b,c; a = b = c = 5;

  • B+=:加赋值运算符 把左边和右边的和赋给左边

    • 举例:intx = 3; x+=2;等同于 x = x + 2;

    • 面试题

  • byteb = 5;b = b + 2;b += 2; b = (byte)(b + 2);System.out.println(b);会不会报错?+=运算符在给b赋值时,自动完成了强转操作。

    8:比较运算符==,!=,>,<,>=,<=

  • 比较运算符的结果都是boolean型,也就是要么是true,要么是false

    9:逻辑运算符

  • 逻辑与运算符&

    第一个条件 第二个条件 结果true true truefalse true falsetrue false falsefalse falsefalse简单记:左右两边同时为true,结果为true

  • 逻辑或运算符 |

    第一个条件 第二个条件 结果true true truefalse true truetrue false truefalse false false简单记:左右两边只要有一个结果是true,结果为true

  • 逻辑异或运算符 ^

    第一个条件 第二个条件 结果true true falsefalse true truetrue false truefalse falsefalse简单记:左右两边相同,结果为false

  • 逻辑非运算符 !

    !true false!false true !!true true

  • 短路与:

    &:左边无论什么结果,右边都执行。&&:左边为false,右边不执行,结果为falseintx = 10;x > 11 && x < 15

  • 短路或:

    |:左边无论什么结果,右边都执行。||:左边为true,右边不执行,结果为true

    1:位运算符

  • 位运算符2<<32 * 8 == 2 * 2^3

    • <<一个整数向左移动几位就乘以2的几次幂

    • >>一个整数向右移动几位就除以2的几次幂,高位是0就补0,高位是1就补1

    • >>>无符号右移无论最高位的符号位是0还是1,用无符号右移后高位符号位都是补0

      2:三元运算符

  • 格式 (条件表达式)?表达式1:表达式2

    • 如果条件为true,运算后的结果是表达式1

    • 如果条件为false,运算后的结果是表达式2

    • 条件运算符运算完之后一定有一个结果

      int x,y,z;x = 5;y = 10;z = x > y ? x : y;

  • 表达式

  • 运算符的优先级。

    3:程序运行流程&顺序结构

  • 顺序结构

  • 判断结构

  • 选择结构

  • 循环结构

    4:if语句

  • 三种格式:

  • 第一种:

    if(条件表达式){ 执行语句;}System.out.println();举例:int age = 17;if (age >= 18) System.out.println("可以浏览本网站");System.out.println("完了");

  • 第二种:

    if(条件表达式){ 执行语句; }else{ 执行语句; }举例:int x = 1;if (x == 1){ System.out.println("男厕所欢迎您");}else { System.out.println("女厕所欢迎您");}if else 与三元运算符的区别

  • 第三种:

    if(条件表达式){ 执行语句;}elseif (条件表达式){ 执行语句;}else{执行语句;}举例:intx = 1;if (x == 1){ System.out.println("男厕所欢迎您");}else if(x == 0){ System.out.println("女厕所欢迎您");}else { System.out.println("无法识别您的性别");}

    5:if语句嵌套

    int x = 2, y = 1; if(x==1){ if(y==1){System.out.println("a"); }else{ System.out.println("b"); }}else{ if(y==1){ System.out.println("c"); }else{System.out.println("d"); } } 

    6:switch

  • 格式:

    int x = 10;switch (表达式){//byte,short,int,char,String 枚举case 表达式里对应的值执行语句;break;case 表达式里对应的值执行语句;break;......default:执行语句;break;//最后一句的break可写可不写,因为程序已经执行到了末尾}

  • 案例:

    String name = "张三";String gender = "先生";switch (gender){case "先生": System.out.println(name + "是一位" + gender + "喜欢吃饭睡觉打dota");break;case "女士": System.out.println(name + "是一位" + gender + "逛街购物美容");break;default: System.out.println(name + "是一位" + gender + "打雌性激素保持美貌容颜");}

  • switch结束的两种情况

    • 1,当程序执行过程中遇到了break

    • 2,当程序执行到了末尾处

  • switch语句需要注意的两个细节

    • 1,switch表达式的值与其中一个case匹配的时候,这个case里没有写break;语句,那么程序会继续执行下个case里的执行语句,不会再对case值进行判断,应用于当几个case里的值所要执行的语句都一样的时候,我们可以不写break

      例如:我们做一年有四季的例子:int month = 4; switch (month){ case 3: case 4: case 5:System.out.println(month+"月是春季");break; case 6: case 7: case 8: System.out.println(month+"月是夏季"); break; case 9: case 10: case 11:System.out.println(month+"月是秋季");break; case 12: case 1: case 2: System.out.println(month+"月是冬季"); break; default: System.out.println(month+"月没有这样的月份") }//上述例子就是三个case里面的值输出都一样的,所以我们省略了break;这样会少写几行代码,提高效率* 2,当我们把 default 不是写在最后,default里面还没有写break的是时候,switch里的表达式与各个case里的值都不匹配的时候,上面两个条件同时满足的话,程序在default里执行完了还会再去执行case里的语句

      例如: int x = 3; switch (x){ case 4:System.out.print("a"); break; default:System.out.print("b");//当程序执行到了default但是他没有break,下面的case值不再判断,程序继续执行case 5: System.out.print("c"); case 6:System.out.print("d"); break;//遇到break,程序跳出case 7: System.out.print("e"); }

      7:while

  • while循环

    格式:while (条件表达式){ 循环体;}例如:intx = 3;while (x<6){ System.out.println("x="+x);//循环体 x++;//x自增来控制循环次数}

  • dowhile 循环

    格式:do{ 循环体控制循环次数}while (条件表达式);例如:int x = 3;do{ System.out.println("x="+x);//循环体 x++;//x自增来控制循环次数}while (x<6);

  • whiledo while的区别:

    • dowhile语句会先执行循环体,再去判断条件,也就是说无论条件是否满足他都至少要执行一次循环体,先执行,再判断

    • while先判断条件,只要条件不满足就不在执行循环体了,先判断,再执行.

      1:for循环语句

      • 格式:

        for(初始化表达式1;循环条件表达式2;循环后的操作表达式4){ 执行语句;(循环体)3}

      • 例如:

        for(int x=0; x< 3;x++ ){System.out.println("x="+x);}

        2:循环嵌套及案例

      • 格式:

      • for(初始化表达式;循环条件表达式;循环后的操作表达式){//这是外层循环 执行语句;(循环体) //下面是内循环 for(初始化表达式;循环条件表达式;循环后的操作表达式){ 执行语句;(循环体) }}

      • 举例:

      • for(int x=1;x < 6;x++ ){ for(int y=1; y<6; y++){System.out.print("*"); } System.out.println();}

      • 练习:打印99乘法表

        3:流程控制continuebreak

      • 这两个语句离开应用范围,存在是没有意义的。

      • 这两个语句单独存在下面都不可以有语句,因为执行不到。

      • continue语句是结束本次循环继续下次循环。

      • 标号的出现,可以让这两个语句作用于指定的范围。

        4:函数的概述及格式

      • 函数就是定义在类中的具有特定功能的一段独立小程序。函数也称为方法。

      • 函数的格式

      • 修饰符 返回值类型函数名(参数类型 形式参数1,参数类型形式参数2…) {执行语句; return 返回值;}publicstatic int add(int a,int b){}A:修饰符 后面会重点讲。public staticB:返回值类型这个特定的功能完成后,需要返回一个结果。这个地方就是返回结果的类型。C:函数名 为了方便使用这个函数,给它起个名字。这个名字要符合标识符命名规则。D:参数类型 形式参数的数据类型 **:形式参数 自定义的接收方 **:实际参数 发出方add(3,5)E:执行语句 那么这个语句是由多条语句组成。Freturn这个功能执行完以后,需要有一个返回值,那么这个值有关键字return带回。

        5:函数的使用及注意事项

      • A:一般函数只有被调用后,才执行。

      • Bvoid 表示没有返回。在这个函数的结尾可以不写return。其实jvm会自动的结尾处加上return;

      • C:函数中不能定义函数

      • D:如果定义自己的函数 两个明确

        • 明确该功能的结果 其实就是该功能的返回类型。

        • 明确该功能的参数 其实就是明确该功能中是否需要未知内容(形式参数)参与运算。明确未知内容的类型和个数。

          6:函数的重载

      • A:函数名相同,参数列表不同。

        • 参数类型不同。intadd(int i)void add(double d)

        • 参数个数不同。add(inta,int b);add(int a,int b,int c)

        • 参数顺序不同print(String name, int age)//参数顺序不同的重载是可以存在的,但是没有什么实际意义

      • B:特点:与返回值类型无关,只看参数列表。

      • C:好处:便于阅读,优化程序设计。

        7:函数的练习

      • 1,for的嵌套循环打印矩形用函数封装起来,根据所传参数打印行和列

      • 2,判断两个(int)整数是否相同

      • 3,比较两个(int)整数哪个大?

      • 4,定义一个功能获取三个(int)整数中的最大数

      • 5,定义一个方法求一个数的十六进制表现形式

        8:Scanner类的概述和使用

      • 使用前要导包 *import java.util.Scanner;

      • 使用时要创建对象

      • Scannersc = new Scanner(System.in);int x = sc.nextInt();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值