当前位置: 首页 > news >正文

没有学过C语言可以学Java吗?

Java和C语言之间并没有紧密的关系,虽然Java的实现借鉴了一些C设计,但对学习者来说先学谁后学谁都无所谓。没有学过C语言不可以学Java,不存在一定这个说法,学没学习C语言都可以学Java编程。

学过C肯定能更快的学会Java基础部分,计算机语言有相通之处,而且C和Java的代码风格也更为相似。学习C能了解更多一些关于计算机底层的东西,而Java在这方面就没有C涉及的明显。不学C完全也是可以学会Java,但就长远来看先学C也是有不少好处的。

如果想通过考试或感兴趣入门学习,直接学Java就行,比C简单很多。不学C学Java的话可以更好地建立面向对象的概念,避免很多令人头痛的问题。

推荐入门教程:

Java入门基础视频教程,零基础自学就选黑马程序员Java入门教程(含Java项目和Java真题

黑马程序员C语言基础教程【源码,笔记,软件,案例全,初学者值得收藏的教程】_

但想认真钻研Java,以后从事专业开发的话,要好好学习C语言,很多C的基本问题在Java的课程或书籍里都不会再讲,那些令人头痛的问题也必须搞明白。认真学C的话对学Java是大有帮助。

Java语言的语法和C语言的语法差别比较大,都属于高级编程语言。

Java是面向对象,C是面向过程,两者之间是没有直接联系,且是两种不同开发方向的语言。一般Java可以进行移动端、Web、桌面软件的开发,而C语言经常进行一些底层的开发。

即使一点C语言的基础都没有也不会影响学习Java。但后期深入研究Java,想研究Java的底层实现,比如想知道Java中内存分配到底如何实现的,建议学习一下C语言,因为Java的底层可以通过JNI来调用C语言的程序。而JNI可以实现一些用Java语言所不便实现的功能,例如:


(1)标准的Java类库没有提供我们想要的功能,通常这些功能是平台相关的;


(2)希望使用一些已经有的类库或者应用程序,而并非用Java语言编写;


(3)程序的某些部分对速度要求比较苛刻,我们选择用汇编或者C语言来实现并在Java语言中调用;


(4)为了应用的安全性,会将一些复杂的逻辑和算法通过本地代码C或C++来实现,本地代码比字节码难破解。

当然学习C语言或Java编程两者之间可以互相借鉴,学好一门语言对另一门语言的学习理解可以起到帮助。

相关文章:

  • 网络安全学习路线
  • 指针(四)- 函数指针和回调函数
  • 【职场必备知识】成都购房政策调研
  • 什么是xhr?XMLHttpRequest的基本使用及xhr Level2的新特性详解及案例
  • VMware-安装 CentOs-Linux 操作系统
  • 【老生谈算法】matlab实现LMS算法的自适应滤波算法源码——自适应滤波
  • Springboot 玩一玩代码混淆,防止反编译代码泄露
  • 【配电网重构】基于matlab负荷平衡的配电网重构【含Matlab源码 2180期】
  • 计算机网络---第二章物理层---通信基础
  • 【JAVA问题解决方案】01.EasyExcel导出数据超过Excel单表上限解决方案
  • 第一个C/C++项目
  • 让人获益匪浅的学习网站
  • C语言——经典200道实例(51-55)
  • 软件测试是干什么的?为什么受就业者的欢迎?
  • SpringMVC执行流程
  • 【node学习】协程
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • Apache Pulsar 2.1 重磅发布
  • Bytom交易说明(账户管理模式)
  • codis proxy处理流程
  • docker-consul
  • HTML中设置input等文本框为不可操作
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • Java深入 - 深入理解Java集合
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • laravel 用artisan创建自己的模板
  • node.js
  • select2 取值 遍历 设置默认值
  • Swift 中的尾递归和蹦床
  • Vue UI框架库开发介绍
  • webpack入门学习手记(二)
  • 程序员该如何有效的找工作?
  • 从零开始在ubuntu上搭建node开发环境
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 关于for循环的简单归纳
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 使用Gradle第一次构建Java程序
  • 我有几个粽子,和一个故事
  • 小程序开发中的那些坑
  • 一、python与pycharm的安装
  • 因为阿里,他们成了“杭漂”
  • ​人工智能书单(数学基础篇)
  • #### golang中【堆】的使用及底层 ####
  • ###STL(标准模板库)
  • #pragma pack(1)
  • $ git push -u origin master 推送到远程库出错
  • (C#)一个最简单的链表类
  • (day18) leetcode 204.计数质数
  • (function(){})()的分步解析
  • (Java)【深基9.例1】选举学生会
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (转载)hibernate缓存
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET NPOI导出Excel详解
  • .NET Project Open Day(2011.11.13)