1.说说你了解过、使用过什么编程语言?比较他们的优势
使用过C语言、Java
C语言是一种通用的、高级的编程语言,可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
C语言的优势:
(1)C 程序可读性强,编译效率高。表达灵活和效率高。
(2)C 语言数据类型种类多,具有5种基本的数据类型、多种构造数据类型以及复合的导出类型,提供与地址密切相关的指针运算符。指针可以指向各种类型的简单变量、数组、结构和联合甚至函数,允许用户自己定义数据类型。
(3)C 语言是一种结构化程序设计语言,特别适合于大型程序的模块化设计。
(4)C 语言语法限制不太严格,程序设计自由度大,如对数组下标越界不作检查,由程序编写者自己保证程序的正确性。
(5)C 语言允许直接访问物理地址,能进行位( bit )操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
(6)生成目标代码质量高,程序执行效率高。
(7)C 语言具有较好的可移植性。
(8)C 语言具有语法简洁、灵活、表达能力强,目标代码质量高、可移植性好等基本特点或优点。
Java的优势
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。
简单性
可以说是C++的语法纯净版,语法基于C,却没有头文件,没有指针,也不用去分配内存,去掉了多继承,因此学起来更简单。
面向对象
Java语言是面向对象的,模拟的是人的思维去写程序。它将问题中在特点、功能上存在共性的一些东西通过抽象,封装成类,然后对类进行实例化生成对象,将重点放在对象以及对象之间的接口上。面向过程经常是按照流程一步一步去实现,而面向对象喜欢提取共性,划分模块,尽量使得各个模块之间的关联较小,降低耦合,然后通过接口来调用这些模块,因此,尽管类在调用时需要实例化,产生开销,影响性能,但面向对象的代码减少了代码的复制,易维护,易扩展,可以说是优势明显。
分布式
Java可以写一些分布式的程序,Java是为网络分布式环境所设计的,它能够处理很多TCP/IP协议上的东西。Java可以凭借URL(统一资源定位符)对象访问网络对象。
健壮性
Java是一种强类型的语言,Java提供了类型检查,在程序的编译和运行时进行大量的类型检查,能帮助用户检查出许多在开发早期出现的错误,防止不匹配的数据类型的发生。
安全性
Java的安全性表现在:
使用引用代替了危险的指针,指针虽然强大,但极易出错,比如数组越界等。
JVM有一套垃圾回收机制,不需要程序员直接控制内存回收,由垃圾回收器在后台自动回收不再使用的内存。避免程序忘记及时回收,导致内存泄露。避免程序错误回收程序核心类库的内存,导致系统崩溃。
Java拥有一套异常处理机制,使用try、catch、finally、throw、throws关键字组合进行异常的捕获和处理。
Java的强制类型转换需要符合一定规则
Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。
在运行环境提供了四级安全性保障机制:
字节码校验器 -类装载器 -运行时内存布局 -文件访问限制
平台独立与可移植性
可跨平台,能节约大量的人力物力
多线程
进程是操作系统资源分配的基本单位,线程是CPU执行和调度的基本单位。简单来说,一个程序可以看作一个进程,程序中的一项任务可以看作一个线程
Java多线程实现的方式有四种:
继承Thread类,重写run方法;
实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target;
通过Callable和FutureTask创建线程;
通过线程池创建线程
动态性
Java 程序的基本组成单元就是类,有些类是自己编写的,有一些是从类库中引入的,而类又是运行时动态装载的,这就使得 Java 可以在分布环境中动态地维护程序及类库,而不像C++那样,每当其类库升级之后,相应的程序都必须重新修改、编译.
2.说说你了解过、使用过什么编程工具?
使用过Dev-C++、Visual Studio、IDEA等编程工具
Dev-C++、Visual Studio、Vscode适用于C语言、C++,其中Dev-c++适合新手入门,简洁易懂
IDEA 、eclipse用于Java