I’m unable to find this answer on the webs, does someone know?
Materials in Blender are kept in the blend file, and can be imported into other blend files. Textures are usually either procedurals defined by the renderer used, or images mapped to mesh by different coordinates. The textures are usually kept connected in materials.
Are you asking about the image format to use for material textures? That depends on what you need them to be able to do - jpeg doesn’t have an alpha channel, but png, targa and tiff do.
Craig is right about materials and textures being two different things. Materials are a tightly bound data types specific to a render engine while 2D textures are just images that can be used by any system. Most render engines support 3D procedural textures as well. Procedural textures are often tightly bound to a render engine too and not really portable between systems. Although most systems provide an offering of common 3D procedural textures such as wood, marble, noise, gradient etc…
PNG files are the smallest of the lossless type of image format but Renderman style render engines typically use TIFF or TGA for textures that eventually get converted into an optimized MIP map style image for final processing.