电子管-晶体管
摩尔定律 18个月变一次    
 
贝尔实验室 C语言是基础、芯片领域软件领域
机器语言 ——汇编语言——高级语言 (面向过程,面向对象)
 
基本的逻辑怎么用代码实现
  • 数据类型
数据类型            大小       范围                                             默认值
 
byte(字节)         8         -128 - 127                                           0
shot(短整型)        16      -32768 - 32768                                         0
int(整型)           32   -2147483648-2147483648                                    0
long(长整型)        64   -9233372036854477808-9233372036854477808                  0       
float(浮点型)       32  -3.40292347E+38-3.40292347E+38                            0.0f
double(双精度)        64  -1.79769313486231570E+308-1.79769313486231570E+308        0.0d
char(字符型)        16         ‘ \u0000 - u\ffff ’                             ‘\u0000 ’
boolean(布尔型)     1         true/false                                         false
还有引用类型
 
 
main方法,程序的入口。
若有public,则文件名和前面的名字保持一致
一个源文件可以有多个class文件
编译器是直接跳过注释的,不会编译注释
 
 
跨平台
服务器——手机
linux-unix-windows--
强类型语言
 
内存资源富足或紧缺
 
数据类型  
基本数据类型(数值型*整数和浮点*/字符型/布尔型)八种基本
引用类型(类/接口/数组)
浮点数不能精确的表示所有小数,是有舍入误差的
比较中不用浮点数
BigDecimal 精确计算
布尔类型只占了一位
整形常量默认位int
byte 一个字节 8位 一位是两种状态 所以是2的8次方 256 所以是-128——127
short   2个字节  2的16次方65536       +-三万
int    4字节  2的32次方     +- 21亿
long  8个字节 2的64次方
float 4字节
double 8字节
char 中用unicode字符集  一个单个字符用单引号表示
 
类型之间可转换
可自动类型转换,也可强制类型转换
 
 
  • 变量
变量其实就是一个存储单元。有三个要素:变量名,变量类型,作用域
变量  局部变量/全局变量  静态变量(实例变量,对象私有)/类变量(对象共有)
 
命名规则
变量: 小写字母开头,单词中间大写没有下划线
常量: 全部大写,中间下划线
类名:  大写开头中间大写
变量使用前须声明+初始化
 
类由两部分组成
1、变量的定义
2、方法的定义(一个类中可以由多个方法)
在“变量的定义”中定义的变量为类的成员变量,在整个类中都有效(是全局变量的俗称)。成员变量又分为“实例变量”(类的一个实例,即一个对象)和“类变量”(含static的静态变量)
在方法体中定义的变量叫做局部变量,只在定义他的方法中有效。
局部、实例、成员变量的作用域和生存周期同局部变量一样,而类变量如果用public声明则作用域同全局变量,如果是private则作用域只在类的内部。

其中有static修饰的就是静态变量,没有的就非静态变量
so 有名词:静态全局变量/动态全局变量 、 静态局部变量/动态局部变量
 
局部变量 系统不会自动初始化,需要自己专门初始化
成员变量 则系统会自动初始化
 
 
 
  • 运算符
算术运算符
关系运算符
位运算符
逻辑运算符
赋值运算符
其它运算符
 
点运算符:是对象运算符,取出对象中的属性或方法
 
% 取余数
 
布尔逻辑运算符  与或非  &&  ||  !  与是并且。或是或者。非是反的。
 
短路
 
非就是取反
扩展运算符
 
a +=b  就是 a=a+b
 
  • 控制语句
控制语句(顺序结构/选择结构/循环结构)
选择结构:单选则结构,双选择结构,多选择结构
if后面加布尔表达式true则执行,false则跳过
if else
 
多选择结构在某种情况下能被switch替换
switch 后可直接加变量。 相等的值判断时if else语句可用switch替代
若没有break则case穿透了,可利用穿透
switch 后面加的必须是int,或者是可以自动转换为int的byte,char,short枚举等。
 
  • while/for循环
while 后也是加布尔表达式,若为true,则执行循环体,若false,则跳出。
循环:初始化,条件判断,循环体,迭代
while先判断再执行
dowhile 先执行再判断
 
for循环  
for循环和while循环本质一样。
for的括号内(初始化,条件判断,迭代)+{循环体}
初始化——>判断——>循环体——>迭代 的顺序
 
break 终止所有循环
和continue 终止当次循环
 
  • 方法
method/function
方法:用来完成特定功能的代码片段
方法就是一个功能块,有输入(参数)有输出(返回值)  
有的功能有返回值,有的功能没有返回值。
形参:也就是形式参数,就是在定义一个方法的时候假定给的一个参数,不是实际参数。只是定义的一个概念
return 有两个作用,一个是返回值,一个是结束方法的调用。
Java中方法调用只有值传递没有引用传递。
设计方法的原则:最好保持方法的原子性,一个方法尽量只完成一个功能。这样有利于扩展
java中的方法调用分为(1)静态方法  直接使用 "n= 类名.方法名"调用 . 静态方法是使用公共内存空间的,就是说所有对象都可以直接引用,不需要创建对象再使用该方法。
(2)普通方法  通过new创建对象 " Method m =new Method(); n= m.方法名"    然后使用  对象.方法  调用
 

  • 递归结构/递归方法
递归:自己调用自己
用的时候:先定义递归头(什么时候不调自己) 再定义递归体(什么时候调自己)
递归是一层一层的调用,没到头的话就所有都还开启着,一直在等最后的结果
 
  • api文档
package 包  核心包:java.lang包  类似于“文件夹”  
命名:域名倒着写,不要使用默认包,cn.yao 和cn.yao.com 是不同的包,二者之间没有关系
api:Application Programming Interface 应用程序编程接口
api的文档:所有包,包中所有类和接口,接口或类的详细说明
JDK中主要的包

  • scanner输入,可以使用键盘输入
  • 面向对象(object-oriented)
    类,对象,面向对象的三大特征

    通过类来组织代码,用对象封装数据
    C 面向过程,一个一个方法为组织组织起来的
    C++   一个一个类为组织组织起来的,里面有变量有方法。相近的数据相近的行为放在一起。 组织在一起。(复杂的比较有优势)
     
    有了面向对象仍然需要面向过程的
    面向对象的思维去把握整体,面向过程的思维去把握细节

    面向对象编程(OOP)的本质:以类的方式组织代码,以对象的方式(封装)数据。(先写类再引出对象)
    面向对象思维:OOA,OOD(先有对象再有类)
    对象:具体的事物  abstract
    类:对对象的抽象(抽象:抽出象的部分)
    先有具体的对象,然后抽象出对象中相像的部分归纳出类,通过类再认识其他对象。
    编程是先有类,再写对象
     
    对象:object/instance(实例)都是对象
    对象是以类为模板建立起来的。类就是模板
     
    学Java:学别人写好的类,写自己的类
     
    • 类的属性(类的成员变量)(静态的数据)
    属性若未初始化则使用默认值:数值0,  0.0,  \u0000, null,  false.
    局部变量则系统不会初始化。
    • 类的方法(动态的行为)
    Java中方法参数传递都是 值传递!(方法传参传的都是值/指向的地址)
     
    Java语言中除了基本类型之外的其他变量类型都是引用类型。
    Java中对象是通过引用reference对其操作的。(引用了某个对象的地址)
     
     
    内存中的调用
    栈:存放局部变量
    堆:存放new出来的对象
    方法区:也是堆 存放类的信息(代码),static变量,常量池(字符串常量)等。

    垃圾回收机制(Garbage Collection)

    自动回收,System.gc()通知清理内存。
     
     
    • 构造器/构造方法 constructor
    归属于方法,通常都还在创建的类中写着,只是这个方法是用来创建对象的而已。
    用于构造该类的实例(实例即对象)
    [修饰符] 类名 (形参列表){
      //n条语句
    }
    方法通过new或者对象来调用(因为方法要通过对象来调用,但是这里的构造方法要调用的时候还没有对象,所以就用new来调用这个构造方法。)
    构造器名称必须和类名一致
    不需要返回值无需写return
    经常用来构造该类的对象,或者用来初始化对象的属性
     
     
    • 重载(overload)
    方法的重载:同一个类中,一个方法名可以有多种不同的方法。(形参的类型,个数,以及顺序不同都可以构成重载)。但是返回值类型以及形参的名称不同就无法构成重载。调用时会自动选择匹配对应的方法。
    重载的本质就是只要对同名的方法不构成歧义,则可以重载。
    因为构造器也是方法,所以重载对构造器也适用。构造器也可以重载。
     
    定义类的时候没有(),在定义跟类同名的方法的时候一定有()。
     
    • static变量
    在类中,用static声明的成员变量为静态变量,或者叫类属性,类变量。
    在内存中是置于堆的方法区中,static的方法和static的变量都在堆中。为静态方法。调用时可直接“类名.类属性”不需要对象就可调用。
    普通变量都是从属于对象的,但是static是从属于类的。
    静态方法中不能引用非静态的变量(因为静态方法从属于类,而普通变量和类从属于对象)
    不加类名就是本类的方法/变量,加类名是调用其他类的方法/变量。
    普通方法中可以调用静态的属性和方法。在静态中不能调用非静态的属性和方法(因为静态中调用不到非静态的属性和方法)。
     
    对象可以用类的也可以用对象的。
    类只能用类的不能用对象的。
     
    • this(指代当前对象)
    每个普通方法(非类方法)都会自动传的隐式参数
    普通方法中,this总是指向调用该方法的对象。
    构造方法中,this总是指向正要初始化的对象。
    this不能用于static方法(因为this这个默认参数在static方法中没有对象,也不传this,也传不过去)。

计算机基础——Java笔记一的更多相关文章

  1. 计算机基础--Java中int char byte的关系

    计算机基础--Java中int char byte的关系 重要:一个汉字占用2byte,Java中用char(0-65535 Unicode16)型字符来存字(直接打印输出的话是字而非数字),当然要用 ...

  2. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  3. Java基础复习笔记基本排序算法

    Java基础复习笔记基本排序算法 1. 排序 排序是一个历来都是很多算法家热衷的领域,到现在还有很多数学家兼计算机专家还在研究.而排序是计算机程序开发中常用的一种操作.为何需要排序呢.我们在所有的系统 ...

  4. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  5. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

  6. Java基础复习笔记系列 七 IO操作

    Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...

  7. Java基础复习笔记系列 五 常用类

    Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...

  8. Java基础复习笔记系列 四 数组

    Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...

  9. Java学习之计算机基础(一)

    阅读本文大概需要 4 分钟 想要开始学习Java开发,需要掌握一些必要的计算机基础.如果你是计算机专业的人或者已经学过类似的课程,可以跳过这篇文章的阅读.计算机基础课程有很多,小编在大学里学过的课程就 ...

随机推荐

  1. 剑指offer-链表相关

    剑指offer面试常考手撸算法题-链表篇 1. 从头到尾打印链表 class Solution { public: // 可以先压栈,再出栈到vector // 时间/空间:O(n) vector&l ...

  2. js几种数组排序及sort的实现

    给出以下数组,并进行排序处理 var arr = new Array('1','3','8','2','3','5'); 1. 插入法排序 Array.prototype.csSort = funct ...

  3. centos6.x下让redis以服务方式运行

    1.从官网下载redis-2.8.9.tar.gz之后,将redis解压在/usr/local下,目录是redis-2.8.9,然后按照官网给出的办法安装redis即可. 2.安装完在redis-2. ...

  4. ansible自动化部署之场景应用

    ansible自动化配置管理 官方网站: https://docs.ansible.com 一.安装 配置 启动 (ansible由红帽收购) (1)什么是ansible ansible是IT自动化配 ...

  5. 【转载】linux如何将新硬盘挂载到home目录下

    举例说明: 新增磁盘的设备文件名为 /dev/vdb 大小为100GB. #fdisk -l 查看新增的的磁盘 1.对新增磁盘进行分区 #fdisk /dev/vdb 按提示操作 p打印 n新增 d ...

  6. Python之路【第十篇】Python操作Memcache、Redis、RabbitMQ、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  7. LearnOpenGL学习笔记(二)纹理

    开始学习OpenGL,参考的是著名的LearnOpenGL这个网站,在这里做一些总结性的记录,只是方便自己日后查找或者记录自己的一些拓展思考,关于OpenGL的具体内容请移步: https://lea ...

  8. oj.zstu 4421交税(合数分解成素数)

    题目 题意:T组,每一组输入一个数X,  求X最少能分成几个素数的和,输出. 思路: 对于一个大于2的偶数,由哥德巴赫猜想,一定能分成2个素数. 对于一个奇数来说,一定能分成2个或者3个素数之和.如果 ...

  9. springboot的入门

    SpringBoot SpringBoot是SpringMVC的升级版,简化配置,很可能成为下一代的框架 1.新建项目 怎么创建springBoot项目呢? 创建步骤复杂一点点 New Project ...

  10. Nginx入门(四)——反向代理

    server { listen 8020; server_name localhost; location / { root html; index index.html index.htm; pro ...